예제 #1
0
 public String getCssText(int index) {
   CSSValue value = getProperty(index);
   if (value != null) {
     return value.getCssText();
   }
   return null;
 }
예제 #2
0
  public String getCssText() {
    StringBuffer sb = new StringBuffer();

    for (int i = 0; i < NUMBER_OF_STYLE; i++) {
      // we don't return the format in css as the format
      // is a complex object which can't be represented as
      // css string.
      if (i == IStyle.STYLE_DATA_FORMAT) continue;
      CSSValue value = getProperty(i);
      if (value != null) {
        sb.append(engine.getPropertyName(i));
        sb.append(": ");
        short type = value.getCssValueType();
        switch (type) {
          case CSSValue.CSS_PRIMITIVE_VALUE:
            {
              CSSPrimitiveValue pv = (CSSPrimitiveValue) value;
              short unitType = pv.getPrimitiveType();
              switch (unitType) {
                case CSSPrimitiveValue.CSS_STRING:
                  sb.append("'");
                  sb.append(pv.getStringValue());
                  sb.append("'");
                  break;
                case CSSPrimitiveValue.CSS_URI:
                  sb.append("url('");
                  sb.append(pv.getStringValue());
                  sb.append("')");
                  break;
                default:
                  sb.append(value.getCssText());
              }
            }
            break;
          default:
            sb.append(value.getCssText());
        }
        sb.append("; ");
      }
    }
    if (sb.length() > 2) {
      sb.setLength(sb.length() - 2);
    }
    return sb.toString();
  }
    @Override
    public void handleEvent(Event e) {

      Item selection = getSelection(e.widget);

      if (selection == null || selection.isDisposed() || this.selection == selection) {
        return;
      }

      Item[] items = getItems(e.widget);
      int selectionIndex = getSelectionIndex(e.widget);

      boolean selectionSet = false;

      CSSStyleDeclaration selectedStyle =
          engine.getViewCSS().getComputedStyle(engine.getElement(selection), "selected");
      if (selectedStyle != null) {
        CSSValue value = selectedStyle.getPropertyCSSValue("show-close");
        if (value != null) {
          setShowClose(selection, Boolean.parseBoolean(value.getCssText()));
          selectionSet = true;
        }
      }

      CSSStyleDeclaration unselectedStyle =
          engine.getViewCSS().getComputedStyle(engine.getElement(selection), null);
      if (unselectedStyle == null) {
        for (int i = 0; i < items.length; i++) {
          if (selectionSet && i != selectionIndex) {
            setShowClose(items[i], false);
          }
        }
      } else {
        CSSValue value = unselectedStyle.getPropertyCSSValue("show-close");
        boolean unselectedShowClose =
            value == null ? false : Boolean.parseBoolean(value.getCssText());
        for (int i = 0; i < items.length; i++) {
          if (selectionSet && i != selectionIndex) {
            setShowClose(items[i], unselectedShowClose);
          }
        }
      }

      this.selection = selection;
    }
예제 #4
0
 protected void writeCSSValue(DataOutputStream out, String propertyName, CSSValue value)
     throws IOException {
   int index = getPropertyIndex(propertyName);
   if (index == StyleConstants.STYLE_DATA_FORMAT) {
     DataFormatValue.write(out, (DataFormatValue) value);
   } else {
     IOUtil.writeString(out, value.getCssText());
   }
 }
 public void testCommaSeparatedList() throws Exception {
   CSSValue value = engine.parsePropertyValue("34, 34, 34");
   assertTrue(value instanceof CSSValueList);
   CSSValueList list = (CSSValueList) value;
   assertEquals(list.getCssValueType(), CSSValue.CSS_VALUE_LIST);
   assertEquals(5, list.getLength());
   // FIXME: see comments in bug 278139
   for (int i = 0; i < list.getLength(); i++) {
     assertTrue(list.item(i) instanceof Measure);
   }
   assertEquals(CSSPrimitiveValue.CSS_NUMBER, ((Measure) list.item(0)).getPrimitiveType());
   assertEquals(CSSPrimitiveValue.CSS_CUSTOM, ((Measure) list.item(1)).getPrimitiveType());
   assertEquals(CSSPrimitiveValue.CSS_NUMBER, ((Measure) list.item(2)).getPrimitiveType());
   assertEquals(CSSPrimitiveValue.CSS_CUSTOM, ((Measure) list.item(3)).getPrimitiveType());
   assertEquals(CSSPrimitiveValue.CSS_NUMBER, ((Measure) list.item(4)).getPrimitiveType());
   // use String#matches() as there may be white-space differences
   assertTrue(value.getCssText().matches("34\\s*,\\s*34\\s*,\\s*34"));
 }
예제 #6
0
  @Override
  public boolean applyCSSProperty(
      Object element, String property, CSSValue value, String pseudo, CSSEngine engine)
      throws Exception {
    TipiElement te = (TipiElement) element;
    //		TipiComponent tc = (TipiComponent) element;
    TipiComponent tc = (TipiComponent) te.getNativeWidget();
    //		Object parsed = tc.evaluateExpression(value.getCssText());
    //		String valueString = value.getCssText();
    Operand o = tc.getContext().evaluate(stripQuotes(value.getCssText()), tc, tipiEvent);
    if (o == null) {
      return false;
    }
    Object parsed = o.value;
    //		Object parsed = tc.getContext().evaluateExpression(value.getCssText(), tc, tipiEvent);
    tc.setValue(property, parsed);

    return true;
  }
 public void testList() throws Exception {
   CSSValue value = engine.parsePropertyValue("34 34 34");
   assertTrue(value instanceof CSSValueList);
   assertEquals(((CSSValueList) value).getCssValueType(), CSSValue.CSS_VALUE_LIST);
   assertEquals(3, ((CSSValueList) value).getLength());
   assertTrue(((CSSValueList) value).item(0) instanceof Measure);
   assertEquals(
       CSSPrimitiveValue.CSS_NUMBER,
       ((Measure) ((CSSValueList) value).item(0)).getPrimitiveType());
   assertTrue(((CSSValueList) value).item(1) instanceof Measure);
   assertEquals(
       CSSPrimitiveValue.CSS_NUMBER,
       ((Measure) ((CSSValueList) value).item(1)).getPrimitiveType());
   assertTrue(((CSSValueList) value).item(2) instanceof Measure);
   assertEquals(
       CSSPrimitiveValue.CSS_NUMBER,
       ((Measure) ((CSSValueList) value).item(2)).getPrimitiveType());
   assertEquals("34 34 34", value.getCssText());
 }
예제 #8
0
 protected String getCssText(CSSValue value) {
   if (value == null) {
     return null;
   }
   return value.getCssText();
 }
예제 #9
0
  public HighlightColor(CSSValue value) {

    Highlight shd = Context.getWmlObjectFactory().createHighlight();
    shd.setVal(value.getCssText());
    this.setObject(shd);
  }
예제 #10
0
 public void testURI() throws Exception {
   CSSValue value = engine.parsePropertyValue("url(./somepath/picture.gif)");
   assertTrue(value instanceof Measure);
   assertEquals(((Measure) value).getPrimitiveType(), CSSPrimitiveValue.CSS_URI);
   assertEquals("url(./somepath/picture.gif)", value.getCssText());
 }
예제 #11
0
 public void testEm() throws Exception {
   CSSValue value = engine.parsePropertyValue("75em");
   assertTrue(value instanceof Measure);
   assertEquals(((Measure) value).getPrimitiveType(), CSSPrimitiveValue.CSS_EMS);
   assertEquals("75.0em", value.getCssText());
 }
예제 #12
0
 public void testInch() throws Exception {
   CSSValue value = engine.parsePropertyValue("88in");
   assertTrue(value instanceof Measure);
   assertEquals(((Measure) value).getPrimitiveType(), CSSPrimitiveValue.CSS_IN);
   assertEquals("88.0in", value.getCssText());
 }
예제 #13
0
 public void testPixel() throws Exception {
   CSSValue value = engine.parsePropertyValue("26px");
   assertTrue(value instanceof Measure);
   assertEquals(((Measure) value).getPrimitiveType(), CSSPrimitiveValue.CSS_PX);
   assertEquals("26.0px", value.getCssText());
 }
예제 #14
0
 public void testPercent() throws Exception {
   CSSValue value = engine.parsePropertyValue("30%");
   assertTrue(value instanceof Measure);
   assertEquals(((Measure) value).getPrimitiveType(), CSSPrimitiveValue.CSS_PERCENTAGE);
   assertEquals("30.0%", value.getCssText());
 }
예제 #15
0
 public void testIdentifier() throws Exception {
   CSSValue value = engine.parsePropertyValue("SomeWord");
   assertTrue(value instanceof Measure);
   assertEquals(((Measure) value).getPrimitiveType(), CSSPrimitiveValue.CSS_IDENT);
   assertEquals("SomeWord", value.getCssText());
 }
예제 #16
0
 public void testFloat() throws Exception {
   CSSValue value = engine.parsePropertyValue("2.0");
   assertTrue(value instanceof Measure);
   assertEquals("2.0", value.getCssText());
 }