Search in sources :

Example 1 with PropertyDef

use of org.eclipse.sapphire.PropertyDef in project liferay-ide by liferay.

the class WorkflowNodeMetadataResource method createBinding.

@Override
protected PropertyBinding createBinding(Property property) {
    PropertyBinding binding = null;
    PropertyDef def = property.definition();
    if (WorkflowNodeMetadata.PROP_TERMINAL.equals(def)) {
        binding = new ValuePropertyBinding() {

            @Override
            public String read() {
                return Boolean.toString(WorkflowNodeMetadataResource.this._metadata.isTerminal());
            }

            @Override
            public void write(String value) {
                WorkflowNodeMetadataResource.this._metadata.setTerminal(Boolean.parseBoolean(value));
                saveMetadata();
            }
        };
    } else if (WorkflowNodeMetadata.PROP_POSITION.equals(def)) {
        binding = new ElementPropertyBinding() {

            @Override
            public Resource read() {
                return new PositionResource(WorkflowNodeMetadataResource.this._metadata.getNodeLocation(), WorkflowNodeMetadataResource.this);
            }

            @Override
            public ElementType type(Resource resource) {
                return Position.TYPE;
            }
        };
    } else if (WorkflowNodeMetadata.PROP_TRANSITIONS_METADATA.equals(def)) {
        binding = new LayeredListPropertyBinding() {

            @Override
            public void remove(Resource resource) {
                TransitionMetadataResource transitionMetaResource = (TransitionMetadataResource) resource;
                List<TransitionMetadataObject> transitionMetadataObject = WorkflowNodeMetadataResource.this._metadata.getTransitionsMetadata();
                transitionMetadataObject.remove(transitionMetaResource.getMetadata());
                saveMetadata();
            }

            @Override
            public ElementType type(Resource resource) {
                return TransitionMetadata.TYPE;
            }

            @Override
            protected Object insertUnderlyingObject(ElementType type, int position) {
                TransitionMetadataObject newTransitionMeta = new TransitionMetadataObject();
                List<TransitionMetadataObject> transitionMetadataObject = WorkflowNodeMetadataResource.this._metadata.getTransitionsMetadata();
                transitionMetadataObject.add(position, newTransitionMeta);
                saveMetadata();
                return newTransitionMeta;
            }

            @Override
            protected List<?> readUnderlyingList() {
                return WorkflowNodeMetadataResource.this._metadata.getTransitionsMetadata();
            }

            @Override
            protected Resource resource(Object obj) {
                return new TransitionMetadataResource((TransitionMetadataObject) obj, WorkflowNodeMetadataResource.this);
            }
        };
    }
    if (binding != null) {
        binding.init(property);
    }
    return binding;
}
Also used : ElementType(org.eclipse.sapphire.ElementType) PropertyDef(org.eclipse.sapphire.PropertyDef) XmlResource(org.eclipse.sapphire.modeling.xml.XmlResource) Resource(org.eclipse.sapphire.Resource) ElementPropertyBinding(org.eclipse.sapphire.modeling.ElementPropertyBinding) LayeredListPropertyBinding(org.eclipse.sapphire.LayeredListPropertyBinding) ValuePropertyBinding(org.eclipse.sapphire.ValuePropertyBinding) ElementPropertyBinding(org.eclipse.sapphire.modeling.ElementPropertyBinding) PropertyBinding(org.eclipse.sapphire.PropertyBinding) LayeredListPropertyBinding(org.eclipse.sapphire.LayeredListPropertyBinding) ValuePropertyBinding(org.eclipse.sapphire.ValuePropertyBinding) List(java.util.List)

Example 2 with PropertyDef

use of org.eclipse.sapphire.PropertyDef in project liferay-ide by liferay.

the class ProjectNameValidationService method initValidationService.

@Override
protected void initValidationService() {
    super.initValidationService();
    _listener = new FilteredListener<PropertyContentEvent>() {

        @Override
        protected void handleTypedEvent(PropertyContentEvent event) {
            PropertyDef def = event.property().definition();
            if (!def.equals(NewLiferayPluginProjectOp.PROP_DISPLAY_NAME) && !def.equals(NewLiferayPluginProjectOp.PROP_FINAL_PROJECT_NAME) && !def.equals(NewLiferayPluginProjectOp.PROP_PORTLET_NAME) && !def.equals(NewLiferayPluginProjectOp.PROP_PROJECT_NAMES) && !def.equals(NewLiferayPluginProjectOp.PROP_PROJECT_NAME)) {
                try {
                    refresh();
                } catch (Exception e) {
                    ProjectCore.logError(e);
                }
            }
        }
    };
    NewLiferayPluginProjectOp op = _op();
    op.attach(_listener, "*");
}
Also used : PropertyContentEvent(org.eclipse.sapphire.PropertyContentEvent) PropertyDef(org.eclipse.sapphire.PropertyDef) NewLiferayPluginProjectOp(com.liferay.ide.project.core.model.NewLiferayPluginProjectOp) CoreException(org.eclipse.core.runtime.CoreException)

Example 3 with PropertyDef

use of org.eclipse.sapphire.PropertyDef in project liferay-ide by liferay.

the class PositionResource method createBinding.

@Override
protected PropertyBinding createBinding(Property property) {
    PropertyBinding binding = null;
    PropertyDef def = property.definition();
    if (Position.PROP_X.equals(def) || ConnectionBendpoint.PROP_X.equals(def) || Position.PROP_Y.equals(def) || ConnectionBendpoint.PROP_Y.equals(def)) {
        binding = new ValuePropertyBinding() {

            @Override
            public String read() {
                String retval = null;
                if (PositionResource.this._point != null) {
                    if (Position.PROP_X.equals(def) || ConnectionBendpoint.PROP_X.equals(def)) {
                        retval = Integer.toString(PositionResource.this._point.getX());
                    } else if (Position.PROP_Y.equals(def) || ConnectionBendpoint.PROP_Y.equals(def)) {
                        retval = Integer.toString(PositionResource.this._point.getY());
                    }
                }
                return retval;
            }

            @Override
            public void write(String value) {
                if (PositionResource.this._point == null) {
                    PositionResource.this._point = new Point();
                }
                if (Position.PROP_X.equals(def) || ConnectionBendpoint.PROP_X.equals(def)) {
                    PositionResource.this._point.setX(Integer.parseInt(value));
                } else if (Position.PROP_Y.equals(def) || ConnectionBendpoint.PROP_Y.equals(def)) {
                    PositionResource.this._point.setY(Integer.parseInt(value));
                }
                if (Position.PROP_X.equals(def) || Position.PROP_Y.equals(def)) {
                    WorkflowNodeMetadataResource metadataResource = parent().adapt(WorkflowNodeMetadataResource.class);
                    WorkflowNodeMetadataObject parentMetadata = metadataResource.getMetadata();
                    parentMetadata.setNodeLocation(PositionResource.this._point);
                }
                WorkflowNodeMetadataResource metadataResource = parent().adapt(WorkflowNodeMetadataResource.class);
                metadataResource.saveMetadata();
            }
        };
    }
    if (binding != null) {
        binding.init(property);
    }
    return binding;
}
Also used : PropertyBinding(org.eclipse.sapphire.PropertyBinding) ValuePropertyBinding(org.eclipse.sapphire.ValuePropertyBinding) PropertyDef(org.eclipse.sapphire.PropertyDef) ValuePropertyBinding(org.eclipse.sapphire.ValuePropertyBinding)

Example 4 with PropertyDef

use of org.eclipse.sapphire.PropertyDef in project liferay-ide by liferay.

the class TransitionMetadataResource method createBinding.

@Override
protected PropertyBinding createBinding(Property property) {
    PropertyBinding binding = null;
    PropertyDef def = property.definition();
    if (TransitionMetadata.PROP_NAME.equals(def)) {
        binding = new ValuePropertyBinding() {

            @Override
            public String read() {
                return TransitionMetadataResource.this._metadata.getName();
            }

            @Override
            public void write(String value) {
                TransitionMetadataResource.this._metadata.setName(value);
                WorkflowNodeMetadataResource wfNodeMetadataResource = parent().adapt(WorkflowNodeMetadataResource.class);
                wfNodeMetadataResource.saveMetadata();
            }
        };
    } else if (TransitionMetadata.PROP_LABEL_LOCATION.equals(def)) {
        binding = new LayeredElementBindingImpl() {

            @Override
            public ElementType type(Resource resource) {
                return Position.TYPE;
            }

            @Override
            protected Resource createResource(Object obj) {
                return new LabelPositionResource((Point) obj, TransitionMetadataResource.this);
            }

            @Override
            protected Object readUnderlyingObject() {
                return TransitionMetadataResource.this._metadata.getLabelPosition();
            }
        };
    } else if (TransitionMetadata.PROP_BENDPOINTS.equals(def)) {
        binding = new LayeredListPropertyBinding() {

            @Override
            public void remove(Resource resource) {
                if (resource instanceof PositionResource) {
                    List<Point> bendPoints = TransitionMetadataResource.this._metadata.getBendpoints();
                    bendPoints.remove(((PositionResource) resource).getPoint());
                    WorkflowNodeMetadataResource wfNodeMetadataResource = parent().adapt(WorkflowNodeMetadataResource.class);
                    wfNodeMetadataResource.saveMetadata();
                }
            }

            @Override
            public ElementType type(Resource resource) {
                return ConnectionBendpoint.TYPE;
            }

            @Override
            protected Object insertUnderlyingObject(ElementType type, int position) {
                Point newBendpoint = new Point();
                List<Point> bendPoints = TransitionMetadataResource.this._metadata.getBendpoints();
                bendPoints.add(position, newBendpoint);
                WorkflowNodeMetadataResource wfNodeMetadataResource = parent().adapt(WorkflowNodeMetadataResource.class);
                wfNodeMetadataResource.saveMetadata();
                return newBendpoint;
            }

            @Override
            protected List<?> readUnderlyingList() {
                return TransitionMetadataResource.this._metadata.getBendpoints();
            }

            @Override
            protected Resource resource(Object obj) {
                return new PositionResource((Point) obj, TransitionMetadataResource.this);
            }
        };
    }
    if (binding != null) {
        binding.init(property);
    }
    return binding;
}
Also used : ElementType(org.eclipse.sapphire.ElementType) PropertyDef(org.eclipse.sapphire.PropertyDef) Resource(org.eclipse.sapphire.Resource) ConnectionBendpoint(com.liferay.ide.kaleo.core.model.ConnectionBendpoint) LayeredListPropertyBinding(org.eclipse.sapphire.LayeredListPropertyBinding) PropertyBinding(org.eclipse.sapphire.PropertyBinding) ValuePropertyBinding(org.eclipse.sapphire.ValuePropertyBinding) LayeredListPropertyBinding(org.eclipse.sapphire.LayeredListPropertyBinding) LayeredElementBindingImpl(org.eclipse.sapphire.modeling.LayeredElementBindingImpl) ValuePropertyBinding(org.eclipse.sapphire.ValuePropertyBinding) List(java.util.List)

Example 5 with PropertyDef

use of org.eclipse.sapphire.PropertyDef in project liferay-ide by liferay.

the class CDataValueBindingImpl method init.

@Override
public void init(Property property) {
    super.init(property);
    PropertyDef propertyDef = property.definition();
    XmlBinding bindingAnnotation = propertyDef.getAnnotation(XmlBinding.class);
    _path = new XmlPath(bindingAnnotation.path(), resource().getXmlNamespaceResolver());
}
Also used : XmlPath(org.eclipse.sapphire.modeling.xml.XmlPath) PropertyDef(org.eclipse.sapphire.PropertyDef) XmlBinding(org.eclipse.sapphire.modeling.xml.annotations.XmlBinding)

Aggregations

PropertyDef (org.eclipse.sapphire.PropertyDef)8 PropertyBinding (org.eclipse.sapphire.PropertyBinding)4 ValuePropertyBinding (org.eclipse.sapphire.ValuePropertyBinding)4 List (java.util.List)2 Element (org.eclipse.sapphire.Element)2 ElementType (org.eclipse.sapphire.ElementType)2 Event (org.eclipse.sapphire.Event)2 FilteredListener (org.eclipse.sapphire.FilteredListener)2 LayeredListPropertyBinding (org.eclipse.sapphire.LayeredListPropertyBinding)2 Listener (org.eclipse.sapphire.Listener)2 Property (org.eclipse.sapphire.Property)2 PropertyContentEvent (org.eclipse.sapphire.PropertyContentEvent)2 Resource (org.eclipse.sapphire.Resource)2 ConnectionBendpoint (com.liferay.ide.kaleo.core.model.ConnectionBendpoint)1 NewLiferayPluginProjectOp (com.liferay.ide.project.core.model.NewLiferayPluginProjectOp)1 NewLiferayProfile (com.liferay.ide.project.core.model.NewLiferayProfile)1 CoreException (org.eclipse.core.runtime.CoreException)1 DisposeEvent (org.eclipse.sapphire.DisposeEvent)1 PossibleValuesService (org.eclipse.sapphire.PossibleValuesService)1 PropertyEvent (org.eclipse.sapphire.PropertyEvent)1