/** * Make sure the images in the drawers are up to date. Recalculate them and inform the border of * any changes. */ @Override protected void refreshDrawerImages() { ScopeBorder border = getScopeBorder(); if (topImage != null) { topImage.dispose(); topImage = null; } if (bottomImage != null) { bottomImage.dispose(); bottomImage = null; } IMarkerHolder holder = BPELUtil.adapt(getActivity(), IMarkerHolder.class); IMarker[] markers = holder.getMarkers(getActivity()); int topMarkerPriority = Integer.MIN_VALUE; int bottomMarkerPriority = Integer.MIN_VALUE; IMarker topMarker = null; IMarker bottomMarker = null; for (int i = 0; i < markers.length; i++) { IMarker marker = markers[i]; String value = marker.getAttribute( IModelMarkerConstants.DECORATION_GRAPHICAL_MARKER_ANCHOR_POINT_ATTR, ""); //$NON-NLS-1$ if (value.equals(IBPELUIConstants.MARKER_ANCHORPOINT_DRAWER_TOP)) { if (marker.getAttribute(IModelMarkerConstants.DECORATION_MARKER_VISIBLE_ATTR, true)) { int priority = marker.getAttribute( IModelMarkerConstants.DECORATION_MARKER_PRIORITY_ATTR, Integer.MIN_VALUE); if (priority > topMarkerPriority) { topMarkerPriority = priority; topImage = BPELUtil.getImage(marker); topMarker = marker; } } } else if (value.equals(IBPELUIConstants.MARKER_ANCHORPOINT_DRAWER_BOTTOM)) { if (marker.getAttribute(IModelMarkerConstants.DECORATION_MARKER_VISIBLE_ATTR, true)) { int priority = marker.getAttribute( IModelMarkerConstants.DECORATION_MARKER_PRIORITY_ATTR, Integer.MIN_VALUE); if (priority > bottomMarkerPriority) { bottomMarkerPriority = priority; bottomImage = BPELUtil.getImage(marker); bottomMarker = marker; } } } } border.setTopImage(topImage); border.setBottomImage(bottomImage); border.setTopMarker(topMarker); border.setBottomMarker(bottomMarker); }
@Override public void run() { List selList = getSelectedObjects(); if (selList.size() == 1) { Scope scope = (Scope) selList.get(0); ScopeEditPart editPart = (ScopeEditPart) editor.getGraphicalViewer().getEditPartRegistry().get(scope); if (editPart != null) { boolean state = BPELUtil.getShowTerminationHandler(editPart); BPELUtil.setShowTerminationHandler(editPart, !state); } } }
public FaultHandler getFaultHandler() { IFaultHandlerHolder holder = BPELUtil.adapt(getProcess(), IFaultHandlerHolder.class); if (holder != null) { return holder.getFaultHandler(getProcess()); } return null; }
protected IFigure createFigure() { if (image == null) { ILabeledElement element = BPELUtil.adapt(getStartNode(), ILabeledElement.class); image = element.getSmallImage(getStartNode()); Rectangle rect = image.getBounds(); imageWidth = rect.width; imageHeight = rect.height; } this.hasFH = getFaultHandler() != null; this.hasEH = getEventHandler() != null; // Cause the handlerIcons don't belong to the // bounds of the StartNodeFigure (as a result of // moving them a bit to the right in vertical layout and a bit to to the bottom // in horizontal layout) hit testing // doesn't reach the Startnode. So add an invisible // border StartNodeFigure snf = new StartNodeFigure(); if (!ModelHelper.isHorizontalLayout(getModel())) snf.setBorder(new MarginBorder(0, 7 + BORDER_WIDTH, 0, 7 + BORDER_WIDTH)); else snf.setBorder(new MarginBorder(5, 0, 5, 0)); faultImageFigure = new ImageFigure(faultImage); faultImageFigure.setParent(snf); eventImageFigure = new ImageFigure(eventImage); eventImageFigure.setParent(snf); return snf; }
/** * Return a list of the model children that should be displayed. This includes activities (if * includeActivity is true), fault handlers, compensation handlers and event handlers. */ protected List<EObject> getModelChildren(boolean includeActivity) { ArrayList<EObject> children = new ArrayList<EObject>(); if (includeActivity) { // Use IContainer here for implicit sequence handling IContainer container = BPELUtil.adapt(getModel(), IContainer.class); for (Iterator<EObject> it = container.getChildren(getModel()).iterator(); it.hasNext(); ) { EObject child = it.next(); if (child instanceof Activity) children.add(child); } } if (showFH) { FaultHandler faultHandler = this.getFaultHandler(); if (faultHandler != null) children.add(children.size(), faultHandler); } if (showCH) { CompensationHandler compensationHandler = this.getCompensationHandler(); if (compensationHandler != null) children.add(children.size(), compensationHandler); } if (showTH) { TerminationHandler terminationHandler = this.getTerminationHandler(); if (terminationHandler != null) children.add(children.size(), terminationHandler); } if (showEH) { EventHandler eventHandler = this.getEventHandler(); if (eventHandler != null) children.add(children.size(), eventHandler); } return children; }
public EventHandler getEventHandler() { IEventHandlerHolder holder = BPELUtil.adapt(getActivity(), IEventHandlerHolder.class); if (holder != null) { return holder.getEventHandler(getActivity()); } return null; }
/** * (non-Javadoc) * * @see org.eclipse.bpel.ui.IHoverHelper#getHoverFigure(org.eclipse.emf.ecore.EObject) */ public IFigure getHoverFigure(EObject modelObject) { IHoverHelper delegate = BPELUtil.adapt(modelObject, IHoverHelper.class); if (delegate != null) { return delegate.getHoverFigure(modelObject); } return null; }
public TerminationHandler getTerminationHandler() { ITerminationHandlerHolder holder = BPELUtil.adapt(getActivity(), ITerminationHandlerHolder.class); if (holder != null) { return holder.getTerminationHandler(getActivity()); } return null; }
/** Return a string which should be displayed in this node while collapsed. */ @Override protected String getLabel() { ILabeledElement element = BPELUtil.adapt(getActivity(), ILabeledElement.class); if (element != null) { return element.getLabel(getActivity()); } return null; }
public CompensationHandler getCompensationHandler() { ICompensationHandlerHolder holder = BPELUtil.adapt(getActivity(), ICompensationHandlerHolder.class); if (holder != null) { return holder.getCompensationHandler(getActivity()); } return null; }
@Override protected IFigure createFigure() { // TODO: Shouldn't have to initialize labels in each subclass. initializeLabels(); if (collapsedImage == null) { // Create the actual figure for the collapsed edit part ILabeledElement element = BPELUtil.adapt(getActivity(), ILabeledElement.class); collapsedImage = element.getSmallImage(getActivity()); } this.collapsedImageLabel = new Label(collapsedImage); this.collapsedNameLabel = new Label(getLabel()); // TODO: Shouldn't have to set the decorator in each subclass. editPartMarkerDecorator = new BPELEditPartMarkerDecorator( (EObject) getModel(), new CollapsableDecorationLayout(/*collapsedImage.getBounds().width*/ 0)); editPartMarkerDecorator.addMarkerMotionListener(getMarkerMotionListener()); this.parentFigure = new Figure(); AlignedFlowLayout layout = new AlignedFlowLayout(); layout.setHorizontal(true); layout.setHorizontalSpacing(0); layout.setVerticalSpacing(0); parentFigure.setLayoutManager(layout); this.contentFigure = new CollapsableScopeContainerFigure(getModel(), getImage(), getLabel()); contentFigure.addMouseMotionListener(getMouseMotionListener()); contentFigure.setEditPart(this); contentFigure.setForegroundColor( BPELUIPlugin.INSTANCE.getColorRegistry().get(IBPELUIConstants.COLOR_BLACK)); parentFigure.add(contentFigure); // Configure the border and contents based on collapsed state if (isCollapsed()) { configureCollapsedFigure(contentFigure); } else { configureExpandedFigure(contentFigure); } boolean isHorizontal = ModelHelper.isHorizontalLayout(getModel()); this.auxilaryFigure = new AuxiliaryFigure(); layout = new AlignedFlowLayout(); layout.setHorizontal(!isHorizontal); auxilaryFigure.setLayoutManager(layout); contentFigure.addFigureListener(auxilaryFigure); parentFigure.add(auxilaryFigure); ScopeBorder border = getScopeBorder(); border.setShowFault(getFaultHandler() != null); border.setShowCompensation(getCompensationHandler() != null); border.setShowTermination(getTerminationHandler() != null); border.setShowEvent(getEventHandler() != null); return editPartMarkerDecorator.createFigure(parentFigure); }
@Override protected void basicSetInput(EObject newInput) { if (newInput instanceof SampleStructuredActivity) { super.basicSetInput(newInput); updateVariableTypeSelector(); updateVariableName(); variableNamedElement = BPELUtil.adapt(getActivity().getVariable(), INamedElement.class); variableNameEditController.setInput(getActivity().getVariable()); } }
@Override public boolean isChecked() { List selList = getSelectedObjects(); if (selList.size() == 1) { ScopeEditPart editPart = (ScopeEditPart) editor.getGraphicalViewer().getEditPartRegistry().get(selList.get(0)); return BPELUtil.getShowTerminationHandler(editPart); } return false; }
@SuppressWarnings("nls") @Override protected void store(IVirtualCopyRuleSide aModel) { From from = BPELUtil.adapt(aModel.getCopyRuleSide(), From.class); ServiceRef serviceRef = from.getServiceRef(); if (serviceRef == null) { serviceRef = BPELFactory.eINSTANCE.createServiceRef(); from.setServiceRef(serviceRef); } // TODO: Delegate to the endpoint handler to store the endpoint // into the ServiceRef. }
/** @see org.eclipse.bpel.ui.actions.editpart.IEditPartAction#onButtonPressed() */ public boolean onButtonPressed() { CompoundCommand command = new CompoundCommand(IBPELUIConstants.CMD_ADD_TERMINATIONHANDLER); final EObject child = UIObjectFactoryProvider.getInstance() .getFactoryFor(BPELPackage.eINSTANCE.getTerminationHandler()) .createInstance(); command.add(new InsertInContainerCommand((EObject) modelObject, child, null)); command.add(new SetNameAndDirectEditCommand(child, viewer)); ModelHelper.getBPELEditor(modelObject).getCommandStack().execute(command); BPELUtil.setShowTerminationHandler(editPart, true); return true; }
@Override protected boolean calculateEnabled() { List selList = getSelectedObjects(); if (selList.size() != 1) return false; Object o = selList.get(0); if (o instanceof Scope) { ITerminationHandlerHolder holder = BPELUtil.adapt(o, ITerminationHandlerHolder.class); if (holder != null) { if (holder.getTerminationHandler(o) != null) return true; } } return false; }
public void doExecute() { // only alter if parter is set. Otherwise, plain vanila partner link type creation. if (partner != null) { getPartnerLinkType() .setName( BPELUtil.getUniqueModelName( definition, partner.getName() + "PLT", Collections.singletonList(getPartnerLinkType()))); // $NON-NLS-1$ } super.doExecute(); }
public boolean onButtonPressed() { CompoundCommand command = new CompoundCommand(IBPELUIConstants.CMD_ADD_EVENTHANDLER); final EventHandler eventHandler = BPELFactory.eINSTANCE.createEventHandler(); // Create an empty OnEvent inside it. final OnEvent onEvent = (OnEvent) UIObjectFactoryProvider.getInstance() .getFactoryFor(BPELPackage.eINSTANCE.getOnEvent()) .createInstance(); eventHandler.getEvents().add(onEvent); command.add(new InsertInContainerCommand((EObject) modelObject, eventHandler, null)); command.add(new SetNameAndDirectEditCommand(onEvent, viewer)); ModelHelper.getBPELEditor(modelObject).getCommandStack().execute(command); BPELUtil.setShowEventHandler(editPart, true); return true; }
@Override protected void createClient(Composite parent) { FlatFormData data; Composite composite = parentComposite = createFlatFormComposite(parent); Label description = getWidgetFactory() .createLabel( composite, "Declare a variable that is in scope only for this structured activity"); data = new FlatFormData(); data.left = new FlatFormAttachment(0, 0); data.top = new FlatFormAttachment(0, IDetailsAreaConstants.VSPACE); description.setLayoutData(data); Label nameLabel = getWidgetFactory().createLabel(composite, "Variable Name:"); variableName = fWidgetFactory.createText(composite, EMPTY_STRING); data = new FlatFormData(); data.left = new FlatFormAttachment( 0, BPELUtil.calculateLabelWidth(nameLabel, STANDARD_LABEL_WIDTH_AVG)); data.right = new FlatFormAttachment(100, (-2) * IDetailsAreaConstants.HSPACE); data.top = new FlatFormAttachment(description, 10, SWT.LEFT); variableName.setLayoutData(data); data = new FlatFormData(); data.left = new FlatFormAttachment(0, 0); data.right = new FlatFormAttachment(variableName, -IDetailsAreaConstants.HSPACE); data.top = new FlatFormAttachment(variableName, 0, SWT.CENTER); nameLabel.setLayoutData(data); variableTypeSelector = new VariableTypeSelector( composite, SWT.NONE, getBPELEditor(), fWidgetFactory, new VariableTypeCallback()); data = new FlatFormData(); data.top = new FlatFormAttachment(nameLabel, 0, SWT.LEFT); data.left = new FlatFormAttachment(0, 0); data.right = new FlatFormAttachment(100, 0); data.bottom = new FlatFormAttachment(100, 0); variableTypeSelector.setLayoutData(data); createChangeTrackers(); }
protected void createNamespaceWidgets(Composite composite) { FlatFormData data; Label namespaceLabel = fWidgetFactory.createLabel(composite, Messages.NamespaceSection_Target_namespace_1); namespaceText = fWidgetFactory.createText(composite, EMPTY_STRING); data = new FlatFormData(); data.left = new FlatFormAttachment( 0, BPELUtil.calculateLabelWidth(namespaceLabel, STANDARD_LABEL_WIDTH_AVG)); data.right = new FlatFormAttachment(100, 0); data.top = new FlatFormAttachment(0, 0); namespaceText.setLayoutData(data); data = new FlatFormData(); data.left = new FlatFormAttachment(0, 0); data.right = new FlatFormAttachment(namespaceText, -IDetailsAreaConstants.HSPACE); data.top = new FlatFormAttachment(namespaceText, 0, SWT.CENTER); namespaceLabel.setLayoutData(data); }
@Override protected boolean calculateEnabled() { List<?> objects = getSelectedObjects(); if (objects.size() != 1) { fSelection = null; return false; } Object sel = objects.get(0); if (sel instanceof EditPart) { EditPart part = (EditPart) sel; sel = part.getModel(); } if (sel instanceof BPELExtensibleElement) { fSelection = (BPELExtensibleElement) sel; } if (fSelection == null) { fSelection = null; return false; } IContainer container = BPELUtil.adapt(fSelection, IContainer.class); if (container == null) { fSelection = null; return false; } // make sure it can contain something of this type if (container.canAddObject(fSelection, cachedInstance, null) == false) { fSelection = null; return false; } return true; }
/** Show the types which are available in the current project only. */ protected void refreshFromProject() { if (fTreeViewer != null) { fTreeViewer.setInput(null); } if (fProjectObjects == null) { Resource resource = modelObject.eResource(); IFile file = BPELUtil.getFileFromURI(resource.getURI()); fProjectObjects = resourceContentProvider.getElements(file.getProject()); } if (fFilteredList != null) { fFilteredList.setEnabled(true); fFilteredList.setAllowDuplicates(showDuplicates); fFilteredList.setElements(contentProvider.getElements(fProjectObjects)); if (contentProvider.getElements(fProjectObjects) != null && contentProvider.getElements(fProjectObjects).length > 0) { updateLowerViewWidget(fFilteredList.getSelection()); } } }
@SuppressWarnings("nls") @Override protected void basicSetInput(EObject newInput) { fCopyRuleSide = BPELUtil.adapt(newInput, IVirtualCopyRuleSide.class); super.basicSetInput(newInput); }
protected void updatePreviewText(IStructuredSelection selection) { if (previewText == null) return; VariableTreeContentProvider contentProvider = (VariableTreeContentProvider) super.getTreeViewer().getContentProvider(); Object[] path = contentProvider.getPathToRoot(selection.getFirstElement()); String preview = "$"; // $NON-NLS-1$ if (path != null) { Variable var = null; for (int i = path.length - 1; i >= 0; i--) { String targetNamespace = null; String namespacePrefix = null; String segment = null; Object modelObject = BPELUtil.resolveXSDObject(((ITreeNode) path[i]).getModelObject()); ; if (modelObject instanceof Variable) { var = (Variable) modelObject; segment = var.getName(); } else if (modelObject instanceof XSDAttributeDeclaration) { XSDAttributeDeclaration att = (XSDAttributeDeclaration) modelObject; targetNamespace = att.getTargetNamespace(); if (targetNamespace != null) { namespacePrefix = BPELUtils.getNamespacePrefix(var, targetNamespace); Assert.isNotNull(namespacePrefix, XPathExpressionUtil.MSG_NS_PREFIX_NULL); segment = "/@" + namespacePrefix + ":" + att.getName(); // $NON-NLS-1$ //$NON-NLS-2$ } else { segment = "/@" + att.getName(); // $NON-NLS-1$ } } else if (modelObject instanceof XSDElementDeclaration) { XSDElementDeclaration elm = (XSDElementDeclaration) modelObject; targetNamespace = elm.getTargetNamespace(); XSDTypeDefinition typeDef = elm.getType(); XSDParticle particle = typeDef.getComplexType(); boolean isArray = particle != null && (particle.getMaxOccurs() == XSDParticle.UNBOUNDED || particle.getMaxOccurs() > 1); if (targetNamespace != null) { namespacePrefix = BPELUtils.getNamespacePrefix(var, targetNamespace); Assert.isNotNull(namespacePrefix, XPathExpressionUtil.MSG_NS_PREFIX_NULL); segment = "/" + namespacePrefix + ":" + elm.getName(); // $NON-NLS-1$ //$NON-NLS-2$ } else { segment = "/" + elm.getName(); // $NON-NLS-1$ } if (isArray) { segment += "[1]"; // $NON-NLS-1$ } } else if (modelObject instanceof Part) { Part part = (Part) modelObject; segment = "." + part.getName(); // $NON-NLS-1$ } if (segment != null) preview += segment; } // store away value previewText.setText(preview); thePreviewText = preview; } }
/** * @see * org.eclipse.bpel.ui.properties.IAssignCategory#isCategoryForModel(org.eclipse.emf.ecore.EObject) */ @Override public boolean isCategoryForModel(EObject aModel) { From from = BPELUtil.adapt(aModel, From.class); return from != null && from.getServiceRef() != null; }