Examples of IMetaclass


Examples of org.eclipse.e4.xwt.metadata.IMetaclass

  @Override
  public void prepare(Object target) {
    String routedEvent = getRoutedEvent();
    if (routedEvent != null) {
      Object source = getElementByName(target, getSourceName());
      IMetaclass metaclass = XWT.getMetaclass(source);
      IEvent event = metaclass.findEvent(ModelUtils.normalizeEventName(routedEvent));
      if (event == null) {
        if (routedEvent != null && !routedEvent.toLowerCase().endsWith(IEventConstants.SUFFIX_KEY)) {
          LoggerManager.log("Event " + routedEvent + " is not found in " + source
              .getClass().getName() + ". Please add a suffix \"Event\"!");         
        }
View Full Code Here

Examples of org.eclipse.e4.xwt.metadata.IMetaclass

    super(names);
  }

  public void fireEvent(IObservableValueListener manager, IProperty property) {
    Object host = manager.getHost();
    IMetaclass metaclass = XWT.getMetaclass(host);

    EventProperty reaisedEventProperty = (EventProperty) property;
    String raisedName = reaisedEventProperty.getEvent().getName();
    for (String name : getEventNames()) {
      if (name.equalsIgnoreCase(raisedName)) {
        continue;
      }
      String eventPropertyName = IEventConstants.getEventPropertyName(name);
      IProperty eventProperty = metaclass.findProperty(eventPropertyName);

      IObservableValue value = manager.getValue(eventProperty);
      if (value != null) {
        value.setValue(false);
      }
View Full Code Here

Examples of org.eclipse.e4.xwt.metadata.IMetaclass

    Object host = manager.getHost();
    IEventHandler controller = UserData.findEventController(host);
    if (controller == null) {
      controller = UserData.updateEventController(host);
    }
    IMetaclass metaclass = XWT.getMetaclass(host);

    EventProperty reaisedEventProperty = (EventProperty) property;
    String raisedName = reaisedEventProperty.getEvent().getName();
    for (String name : getEventNames()) {
      if (name.equalsIgnoreCase(raisedName)) {
        continue;
      }
      String eventPropertyName = IEventConstants.getEventPropertyName(name);
      String eventName = IEventConstants.getEventName(name);
      IEvent event = metaclass.findEvent(eventName);
      IProperty eventProperty = metaclass.findProperty(eventPropertyName);
     
      try {
        controller.setEvent(event, UserData.getWidget(host), manager, eventProperty, IObservableValueListener.class.getDeclaredMethod("changeValueHandle", Object.class, org.eclipse.swt.widgets.Event.class));
      } catch (Exception e) {
        LoggerManager.log(e);
View Full Code Here

Examples of org.eclipse.e4.xwt.metadata.IMetaclass

          LoggerManager.log(e);
        }
      }
      cacheData = new CacheData();
 
      IMetaclass metaclass = XWT.getMetaclass(dataObject);
      IProperty prop = metaclass.findProperty(propertyName);
      if (prop != null && value != null) {
        cacheData.property = prop;
        Class<?> valueType = value.getClass();
        IConverter converter = XWT.findConvertor(valueType, prop
            .getType());
View Full Code Here

Examples of org.eclipse.e4.xwt.metadata.IMetaclass

   * @see org.eclipse.e4.xwt.IXWTLoader#getMetaclass(java.lang.Object)
   */
  public IMetaclass getMetaclass(Object object) {
    for (int i = cores.size() - 1; i >= 0; i--) {
      Core core = cores.get(i);
      IMetaclass metaclass = core.findMetaclass(object);
      if (metaclass != null) {
        return metaclass;
      }
    }
    Class<?> javaClass = null;
    if (object instanceof Class<?>) {
      javaClass = (Class<?>) object;
    } else {
      javaClass = object.getClass();
    }
    Class<?> superclass = javaClass.getSuperclass();
    IMetaclass superMetaclass = null;
    if (superclass != null) {
      superMetaclass = getMetaclass(superclass);
    }
    return getCurrentCore().registerMetaclass(javaClass,
        IConstants.XWT_NAMESPACE, superMetaclass);
View Full Code Here

Examples of org.eclipse.e4.xwt.metadata.IMetaclass

   * java.lang.String)
   */
  public IMetaclass getMetaclass(String tagName, String ns) {
    for (int i = cores.size() - 1; i >= 0; i--) {
      Core core = cores.get(i);
      IMetaclass metaclass = core.getMetaclass(getLoadingContext(),
          tagName, ns);
      if (metaclass != null) {
        return metaclass;
      }
    }
View Full Code Here

Examples of org.eclipse.e4.xwt.metadata.IMetaclass

   *
   * @param name
   * @param command
   */
  public void registerEventGroup(Class<?> type, IEventGroup eventGroup) {
    IMetaclass metaclass = getMetaclass(type);
    metaclass.addEventGroup(eventGroup);
  }
View Full Code Here

Examples of org.eclipse.e4.xwt.metadata.IMetaclass

    convertorRegister.register(double.class, String.class,
        NumberToStringConverter.fromDouble(true));

    Class<?> type = org.eclipse.swt.browser.Browser.class;
    IMetaclass browserMetaclass = (IMetaclass) registerMetaclass(type);
    browserMetaclass.addProperty(new DynamicProperty(type, String.class,
        PropertiesConstants.PROPERTY_URL));
    IMetaclass buttonMetaclass = (IMetaclass) registerMetaclass(Button.class);
    buttonMetaclass.addProperty(new DataProperty(IConstants.XAML_COMMAND,
        IUserDataConstants.XWT_COMMAND_KEY, ICommand.class));

    registerMetaclass(org.eclipse.swt.widgets.Canvas.class);
    registerMetaclass(org.eclipse.swt.widgets.Caret.class);
    registerMetaclass(org.eclipse.swt.widgets.Combo.class);
    registerMetaclass(org.eclipse.swt.widgets.Composite.class);
    registerMetaclass(org.eclipse.swt.widgets.CoolBar.class);
    registerMetaclass(org.eclipse.swt.widgets.CoolItem.class);
    registerMetaclass(org.eclipse.swt.widgets.DateTime.class);
    registerMetaclass(org.eclipse.swt.widgets.Decorations.class);
    registerMetaclass(org.eclipse.swt.widgets.ExpandBar.class);
    IMetaclass expandItemMetaclass = registerMetaclass(ExpandItem.class);
    expandItemMetaclass.findProperty("control").addSetPostAction(
        new ExpandItemHeightAction());

    registerMetaclass(Group.class);
    registerMetaclass(IME.class);
    registerMetaclass(Label.class);
    registerMetaclass(Link.class);
    registerMetaclass(Listener.class);
    registerMetaclass(List.class);
    registerMetaclass(Menu.class);
    IMetaclass menuItemMetaclass = (IMetaclass) registerMetaclass(MenuItem.class);
    menuItemMetaclass.addProperty(new DataProperty(IConstants.XAML_COMMAND,
        IUserDataConstants.XWT_COMMAND_KEY, ICommand.class));

    registerMetaclass(org.eclipse.swt.widgets.MessageBox.class);
    registerMetaclass(org.eclipse.swt.widgets.ProgressBar.class);
    registerMetaclass(org.eclipse.swt.widgets.Sash.class);
    registerMetaclass(org.eclipse.swt.widgets.Scale.class);
    registerMetaclass(org.eclipse.swt.widgets.ScrollBar.class);
    registerMetaclass(org.eclipse.swt.widgets.Shell.class);
    registerMetaclass(org.eclipse.swt.widgets.Slider.class);
    registerMetaclass(org.eclipse.swt.widgets.Spinner.class);
    registerMetaclass(org.eclipse.swt.widgets.TabFolder.class);
    registerMetaclass(org.eclipse.swt.widgets.TabItem.class);

    registerMetaclass(org.eclipse.swt.widgets.Table.class);
    type = org.eclipse.swt.widgets.TableItem.class;
    IMetaclass metaclass = (IMetaclass) registerMetaclass(type);
    metaclass.addProperty(new TableItemProperty());
    metaclass.addProperty(new TableItemEditorProperty());
    metaclass.addProperty(new DynamicBeanProperty(TableItem.class,
        String[].class, PropertiesConstants.PROPERTY_TEXTS,
        PropertiesConstants.PROPERTY_TEXT));

    registerMetaclass(TableItemProperty.Cell.class);
    registerMetaclass(ControlEditor.class);
    registerMetaclass(TableEditor.class);

    IMetaclass TableEditorMetaclass = core.getMetaclass(TableEditor.class,
        IConstants.XWT_NAMESPACE);
    TableEditorMetaclass.addProperty(new TableEditorDynamicProperty());

    type = org.eclipse.swt.widgets.TableColumn.class;
    metaclass = (IMetaclass) registerMetaclass(type);
    metaclass.addProperty(new TableColumnEditorProperty());
View Full Code Here

Examples of org.eclipse.e4.xwt.metadata.IMetaclass

          && constraintType != null && constraintType == Class.class) {
        DocumentObject[] children = element.getChildren();
        if (children != null && children.length > 0) {
          if (children[0] instanceof Element) {
            Element type = (Element) children[0];
            IMetaclass metaclass = loader.getMetaclass(type
                .getName(), type.getNamespace());
            if (metaclass != null) {
              return metaclass.getType();
            }
          }
        } else {
          String content = element.getContent();
          return loader.convertFrom(Class.class, content);
        }
      }
      return null;
    }
    IMetaclass metaclass = loader.getMetaclass(name, namespace);
    if (constraintType != null
        && !(IBinding.class.isAssignableFrom(metaclass.getType()))
        && (!constraintType.isAssignableFrom(metaclass.getType()))) {
      if (!constraintType.isArray()
          || !constraintType.getComponentType().isAssignableFrom(
              metaclass.getType())) {
        return null;
      }
    }
    Object targetObject = null;
    Integer styleValue = getStyleValue(element, styles);

    if (parent == null || metaclass.getType() == Shell.class) {
      if (dataBindingTrack != null) {
        dataBindingTrack.addWidgetElement(element);
      }
      Shell shell = null;
      if (styleValue == null || styleValue == -1) {
        styleValue = SWT.CLOSE | SWT.TITLE | SWT.MIN | SWT.MAX
            | SWT.RESIZE;
      }
      Display display = Display.getDefault();
      shell = new Shell(display, styleValue);
      targetObject = shell;
      invokeCreatededAction(element, targetObject);
      loadData.setCurrentWidget(shell);

      if (metaclass.getType() != Shell.class) {
        shell.setLayout(new FillLayout());
        return doCreate(targetObject, element, constraintType, options);
      } else {
        if (bindingContext != null) {
          setBindingContext(metaclass, targetObject, dico,
              bindingContext);
        }
        if (dataContext != null) {
          setDataContext(metaclass, targetObject, dico, dataContext);
        }
      }
      pushStack(parent);

      // for Shell
      Attribute classAttribute = element.getAttribute(
          IConstants.XWT_X_NAMESPACE, IConstants.XAML_X_CLASS);
      if (classAttribute != null) {
        String className = classAttribute.getContent();
        loadShellCLR(className, shell);
      }

    } else {
      pushStack(parent);

      //
      // load the content in case of UserControl
      //
      Class<?> type = metaclass.getType();
      URL file = type.getResource(type.getSimpleName()
          + IConstants.XWT_EXTENSION_SUFFIX);
      if (file != null && nameScoped != null) {
        if (parent instanceof Composite) {
          Object childDataContext = getDataContext(element,
              (Widget) parent);
          Object childBindingContext = getBindingContext(element,
              (Widget) parent);
          if (dataContext != null) {
            childDataContext = dataContext;
          }
          if (bindingContext != null) {
            childBindingContext = bindingContext;
          }
          Map<String, Object> nestedOptions = new HashMap<String, Object>();
          nestedOptions.put(IXWTLoader.CONTAINER_PROPERTY, parent);
          if (styleValue != null) {
            nestedOptions.put(IXWTLoader.INIT_STYLE_PROPERTY,
                styleValue);
          }
          nestedOptions.put(IXWTLoader.DATACONTEXT_PROPERTY,
              childDataContext);
          nestedOptions.put(IXWTLoader.BINDING_CONTEXT_PROPERTY,
              childBindingContext);
          nestedOptions.put(RESOURCE_LOADER_PROPERTY, this);
          targetObject = loader.loadWithOptions(file, nestedOptions);
          if (targetObject == null) {
            return null;
          }
          invokeCreatededAction(element, targetObject);
        } else
          throw new XWTException(
              "Cannot add user control: Parent is not a composite");
      } else {
        Object[] parameters = null;
        if (TableViewerColumn.class.isAssignableFrom(type)) {
          int columnIndex = getColumnIndex(element);
          parameters = (styleValue != null ? new Object[] { parent,
              styleValue, columnIndex } : new Object[] { parent,
              SWT.NONE, columnIndex });
        } else {
          parameters = (styleValue != null ? new Object[] { parent,
              styleValue } : new Object[] { parent });
        }

        // x:Class
        {
          Attribute classAttribute = element
              .getAttribute(IConstants.XWT_X_NAMESPACE,
                  IConstants.XAML_X_CLASS);
          if (classAttribute != null) {
            String className = classAttribute.getContent();
            targetObject = loadCLR(className, parameters, metaclass
                .getType(), options);
          } else {
            Object clr = options.get(XWTLoader.CLASS_PROPERTY);
            if (clr != null) {
              loadData.setClr(clr);
            }
          }
          if (targetObject == null) {
            targetObject = metaclass.newInstance(parameters);
            invokeCreatededAction(element, targetObject);
            Widget widget = UserData.getWidget(targetObject);
            if (widget != null) {
              Object clr = loadData.getClr();
              if (clr != null) {
                UserData.setCLR(widget, clr);
              }
            }
          } else {
            metaclass = loader.getMetaclass(targetObject);
          }
        }

        if (targetObject == null) {
          return null;
        }
      }
    }
    Widget widget = UserData.getWidget(targetObject);
    if (widget != null) {
      loadData.setCurrentWidget(targetObject);
    }
    if (scopedObject == null && widget != null) {
      scopedObject = widget;
      nameScoped = new ScopeKeeper((parent == null ? null : UserData
          .findScopeKeeper((Widget) parent)), widget);
      UserData.bindNameContext((Widget) widget, nameScoped);
    }

    // set first data context and resource dictionary
    setDataContext(metaclass, targetObject, dico, dataContext);
    if (bindingContext != null) {
      setBindingContext(metaclass, targetObject, dico, bindingContext);
    }

    applyStyles(element, targetObject);

    if (dataBindingTrack != null) {
      dataBindingTrack.tracking(targetObject, element, dataContext);
    }

    // set parent relationship and viewer
    if (targetObject instanceof Widget) {
      if (parent != null) {
        UserData.setParent(targetObject, parent);
      }
    } else if (JFacesHelper.isViewer(targetObject)) {
      UserData.setParent(targetObject, parent);
      UserData.setViewer(targetObject, targetObject);
    } else if (targetObject instanceof TableItemProperty.Cell) {
      ((TableItemProperty.Cell) targetObject)
          .setParent((TableItem) parent);
    }

    for (Map.Entry<String, Object> entry : options.entrySet()) {
      String key = entry.getKey();
      if (IXWTLoader.CONTAINER_PROPERTY.equalsIgnoreCase(key)
          || IXWTLoader.INIT_STYLE_PROPERTY.equalsIgnoreCase(key)
          || IXWTLoader.DATACONTEXT_PROPERTY.equalsIgnoreCase(key)
          || IXWTLoader.BINDING_CONTEXT_PROPERTY
              .equalsIgnoreCase(key)
          || IXWTLoader.RESOURCE_DICTIONARY_PROPERTY
              .equalsIgnoreCase(key)
          || IXWTLoader.CLASS_PROPERTY.equalsIgnoreCase(key)
          || IXWTLoader.LOADED_CALLBACK.equalsIgnoreCase(key)
          || IXWTLoader.CREATED_CALLBACK.equalsIgnoreCase(key)
          || IXWTLoader.BEFORE_PARSING_CALLBACK.equalsIgnoreCase(key)
          || IXWTLoader.DESIGN_MODE_PROPERTY.equalsIgnoreCase(key)) {
        continue;
      }
      IProperty property = metaclass.findProperty(key);
      if (property == null) {
        throw new XWTException("Property " + key + " not found.");
      }
      property.setValue(targetObject, entry.getValue());
    }
View Full Code Here

Examples of org.eclipse.e4.xwt.metadata.IMetaclass

  protected void setDataContext(IMetaclass metaclass, Object targetObject,
      ResourceDictionary dico, Object dataContext)
      throws IllegalAccessException, InvocationTargetException,
      NoSuchFieldException {
    Object control = null;
    IMetaclass widgetMetaclass = metaclass;
    if (JFacesHelper.isViewer(targetObject)) {
      Widget widget = JFacesHelper.getControl(targetObject);
      widgetMetaclass = loader.getMetaclass(widget.getClass());
      control = targetObject;
    } else if (targetObject instanceof Widget) {
      control = (Widget) targetObject;
    } else {
      control = loadData.getCurrentWidget();
    }
    if (control != null) {
      if (targetObject instanceof IDynamicBinding) {
        IDynamicBinding dynamicBinding = (IDynamicBinding) targetObject;
        dynamicBinding.setControl(control);
        dynamicBinding.setHost(loadData.getHost());
      }
      if (dico != null) {
        UserData.setResources(control, dico);
      }
      if (dataContext != null) {
        IProperty property = widgetMetaclass
            .findProperty(IConstants.XAML_DATA_CONTEXT);
        if (property != null) {
          property.setValue(UserData.getWidget(control), dataContext);
        } else {
          throw new XWTException("DataContext is missing in "
              + widgetMetaclass.getType().getName());
        }
      }
    }
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.