Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ElementDeclarationEditPart.java')
-rw-r--r--bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ElementDeclarationEditPart.java460
1 files changed, 0 insertions, 460 deletions
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ElementDeclarationEditPart.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ElementDeclarationEditPart.java
deleted file mode 100644
index 249c88b893..0000000000
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/graph/editparts/ElementDeclarationEditPart.java
+++ /dev/null
@@ -1,460 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2004 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.xsd.ui.internal.graph.editparts;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.draw2d.ColorConstants;
-import org.eclipse.draw2d.IFigure;
-import org.eclipse.draw2d.Label;
-import org.eclipse.draw2d.LineBorder;
-import org.eclipse.draw2d.MarginBorder;
-import org.eclipse.draw2d.RectangleFigure;
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.gef.EditPart;
-import org.eclipse.gef.EditPolicy;
-import org.eclipse.gef.GraphicalEditPart;
-import org.eclipse.gef.Request;
-import org.eclipse.gef.RequestConstants;
-import org.eclipse.gef.requests.LocationRequest;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IFileEditorInput;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.dialogs.types.xsd.XSDComponentSelectionDialog;
-import org.eclipse.wst.xsd.ui.internal.dialogs.types.xsd.XSDComponentSelectionProvider;
-import org.eclipse.wst.xsd.ui.internal.dialogs.types.xsd.XSDSetTypeHelper;
-import org.eclipse.wst.xsd.ui.internal.gef.util.figures.SpacingFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDChildUtility;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDGraphUtil;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDSubstitutionGroupChildUtility;
-import org.eclipse.wst.xsd.ui.internal.graph.XSDSubstitutionGroupsViewer;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.ComboBoxCellEditorManager;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.ComponentNameDirectEditManager;
-import org.eclipse.wst.xsd.ui.internal.graph.editpolicies.SimpleDirectEditPolicy;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ContainerFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.ExpandableGraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.FillLayout;
-import org.eclipse.wst.xsd.ui.internal.graph.figures.GraphNodeFigure;
-import org.eclipse.wst.xsd.ui.internal.graph.model.XSDModelAdapterFactory;
-import org.eclipse.wst.xsd.ui.internal.util.TypesHelper;
-import org.eclipse.xsd.XSDComplexTypeDefinition;
-import org.eclipse.xsd.XSDElementDeclaration;
-import org.eclipse.xsd.XSDParticle;
-import org.eclipse.xsd.XSDSchema;
-import org.eclipse.xsd.XSDSimpleTypeDefinition;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.w3c.dom.Element;
-
-
-
-public class ElementDeclarationEditPart extends ExpandableGraphNodeEditPart
-{
- public Label label;
- protected Label contentIconLabel;
- protected Label typeValueLabel;
- protected SimpleDirectEditPolicy simpleDirectEditPolicy = new SimpleDirectEditPolicy();
- protected boolean isContentIconLabelSelected = false;
-
- protected final static String ELEMENT_TYPE_PLACE_HOLDER = "ELEMENT_TYPE_PLACE_HOLDER";
-
- public XSDParticle getXSDParticle()
- {
- Object o = getXSDElementDeclaration().getContainer();
- return (o instanceof XSDParticle) ? (XSDParticle)o : null;
- }
-
- public XSDElementDeclaration getXSDElementDeclaration()
- {
- return (XSDElementDeclaration)getModel();
- }
-
- protected boolean isDefaultExpanded()
- {
- // hack to expand up to its content. The previous test didn't appear to work
- int depth = 0;
- for (EditPart part = this; part != null; part = part.getParent())
- {
- depth++;
- }
- return depth <= 3;
- }
-
- protected GraphNodeFigure createGraphNodeFigure()
- {
- ExpandableGraphNodeFigure figure = new ExpandableGraphNodeFigure();
-
- figure.getOutlinedArea().setFill(true);
- figure.getOutlinedArea().setLayoutManager(new FillLayout());
-
- label = new Label();
- figure.getIconArea().add(label);
- label.setFont(mediumBoldFont);
-
- SpacingFigure spacingFigure = new SpacingFigure();
- figure.getIconArea().add(spacingFigure);
-
- contentIconLabel = new Label();
- //contentIcon.setBorder(new MarginBorder(2, 2, 2, 10));
- figure.getIconArea().add(contentIconLabel);
-
- // A sneaky null check.... getViewer() does a getRoot(), but getRoot() might be null
- // same with getParent()
- if (getParent() != null && getRoot() != null && getViewer() instanceof XSDSubstitutionGroupsViewer)
- {
- figure.getOuterContentArea().getContainerLayout().setSpacing(5);
- }
- else
- {
- RectangleFigure line = new RectangleFigure();
- line.setPreferredSize(20, 1);
- figure.getOutlinedArea().add(line, 1);
-
- figure.getInnerContentArea().setLayoutManager(new FillLayout(2));
- figure.getInnerContentArea().setBorder(new MarginBorder(2,2,2,1));
-
- ContainerFigure labelGroup = new ContainerFigure();
- Label typeLabel = new Label("type");
- labelGroup.add(typeLabel);
- labelGroup.setBorder(new MarginBorder(0, 4, 0, 4));
-
- Label equalsLabel = new Label(" = ");
- labelGroup.add(equalsLabel);
-
- typeValueLabel = new Label();
- labelGroup.add(typeValueLabel);
- figure.getOutlinedArea().add(labelGroup, 2);
- }
- return figure;
- }
-
- protected ExpandableGraphNodeFigure getExpandableGraphNodeFigure()
- {
- return (ExpandableGraphNodeFigure)graphNodeFigure;
- }
-
- protected List getModelChildren()
- {
- XSDTypeDefinition typeDef = getXSDElementDeclaration().getTypeDefinition();
-
- // Special case simple type. Need to add it to the list as well
- List list = new ArrayList();
- if (typeDef instanceof XSDSimpleTypeDefinition)
- {
- list.add((XSDSimpleTypeDefinition)typeDef);
- if (getExpandableGraphNodeFigure().isExpanded())
- {
- list.addAll(getModelChildrenHelper());
- }
- return list;
- }
- return getExpandableGraphNodeFigure().isExpanded() ? getModelChildrenHelper() : Collections.EMPTY_LIST;
- }
-
- protected List getModelChildrenHelper()
- {
- if (getViewer() instanceof XSDSubstitutionGroupsViewer)
- {
- return XSDSubstitutionGroupChildUtility.getModelChildren(getXSDElementDeclaration().getResolvedElementDeclaration());
- }
- else
- {
- return XSDChildUtility.getModelChildren(getXSDElementDeclaration().getResolvedElementDeclaration());
- }
- }
-
- protected void refreshContentIcon()
- {
- String iconName = null;
- XSDTypeDefinition td = getXSDElementDeclaration().getResolvedElementDeclaration().getTypeDefinition();
-
- if (td instanceof XSDComplexTypeDefinition)
- {
- XSDComplexTypeDefinition complexTypeDefinition = (XSDComplexTypeDefinition)td;
- if (complexTypeDefinition.getAttributeUses().size() > 0)
- {
- iconName = "icons/XSDAttribute.gif";
- }
- }
- Image image = iconName != null ? XSDEditorPlugin.getXSDImage(iconName) : null;
- contentIconLabel.setIcon(image);
- }
-
- protected void refreshVisuals()
- {
- String text = getXSDElementDeclaration().isElementDeclarationReference() ?
- getXSDElementDeclaration().getResolvedElementDeclaration().getQName(getXSDElementDeclaration().getSchema()) :
- getXSDElementDeclaration().getName();
-
- label.setText(text);
-
- ContainerFigure rectangle = graphNodeFigure.getOutlinedArea();
- if (XSDGraphUtil.isEditable(getXSDElementDeclaration()))
- {
- rectangle.setBorder(new LineBorder(isSelected ? ColorConstants.black : elementBorderColor, 2));
- rectangle.setBackgroundColor(elementBackgroundColor);
- rectangle.setForegroundColor(elementBorderColor);
-
- graphNodeFigure.getInnerContentArea().setForegroundColor(ColorConstants.black);
- if (XSDGraphUtil.isEditable(getXSDElementDeclaration().getResolvedElementDeclaration()))
- {
- // give label 'editable' colour
- graphNodeFigure.getInnerContentArea().setForegroundColor(elementLabelColor);
- }
- else
- {
- // give label 'read only' colour
- graphNodeFigure.getInnerContentArea().setForegroundColor(elementBorderColor);
- }
- label.setBackgroundColor(elementBackgroundColor);
- label.setForegroundColor(elementLabelColor);
- }
- else
- {
- rectangle.setBorder(new LineBorder(isSelected ? ColorConstants.black : readOnlyBorderColor, 2));
- rectangle.setBackgroundColor(readOnlyBackgroundColor);
- rectangle.setForegroundColor(readOnlyBorderColor);
- graphNodeFigure.getInnerContentArea().setForegroundColor(readOnlyBorderColor);
- label.setBackgroundColor(readOnlyBackgroundColor);
- }
-
- if (getXSDElementDeclaration().isElementDeclarationReference())
- {
- label.setIcon(XSDEditorPlugin.getXSDImage("icons/GraphViewElementRef.gif"));
- label.setBorder(new MarginBorder(0, 0, 0, 4));
- }
- else
- {
- label.setIcon(null);
- label.setBorder(new MarginBorder(0, 6, 0, 4));
- }
-
- if (getXSDParticle() != null)
- {
- refreshOccurenceLabel(getXSDParticle().getMinOccurs(), getXSDParticle().getMaxOccurs());
- }
-
-
- if (typeValueLabel != null)
- {
- XSDElementDeclaration ed = getXSDElementDeclaration();
- if (ed.getElement() != null)
- {
- String type = ed.getElement().getAttribute("type");
- if (type == null)
- {
- type = "";
- }
- if (!getXSDElementDeclaration().isElementDeclarationReference())
- {
- typeValueLabel.setText(type.equals("") ? "<anonymous>" : type);
- }
- else // if it is a ref, we show the resolved type
- {
- String resolvedType = "";
- if (ed.getResolvedElementDeclaration() != null)
- {
- if (ed.getResolvedElementDeclaration().getTypeDefinition() != null)
- {
- resolvedType = ed.getResolvedElementDeclaration().getTypeDefinition().getQName(ed.getSchema());
-
- // if null, it has an anonymous type that has no resolved type
- if (resolvedType == null)
- {
- resolvedType = "<anonymous>";
- }
- }
- }
- typeValueLabel.setText(resolvedType);
- }
- }
- }
- refreshContentIcon();
- }
-
-
- public void performRequest(Request request)
- {
- if (request.getType() == RequestConstants.REQ_DIRECT_EDIT ||
- request.getType() == RequestConstants.REQ_OPEN)
- {
- if (XSDGraphUtil.isEditable(getXSDElementDeclaration()))
- {
- if (request instanceof LocationRequest)
- {
- LocationRequest locationRequest = (LocationRequest)request;
- Point p = locationRequest.getLocation();
- isContentIconLabelSelected = false;
-
- if (hitTest(label, p))
- {
- performDirectEditForLabel();
- }
- else if (hitTest(typeValueLabel, p))
- {
- performDirectEditForTypeValueLabel();
- }
- }
- }
- }
- }
-
- private void performDirectEditForTypeValueLabel()
- {
- if (!getXSDElementDeclaration().isElementDeclarationReference())
- {
-// TypeReferenceDirectEditManager manager = new TypeReferenceDirectEditManager(this, getXSDElementDeclaration(), typeValueLabel);
-// simpleDirectEditPolicy.setDelegate(manager);
-// manager.show();
-//TODO remove TypeReferenceDirectEditManager since it is not used any longer
-
- Shell shell = Display.getCurrent().getActiveShell();
- IWorkbench workbench = XSDEditorPlugin.getPlugin().getWorkbench();
- IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow();
- IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor();
- IFile currentIFile = ((IFileEditorInput)editorPart.getEditorInput()).getFile();
-
- XSDSchema schema = getXSDElementDeclaration().getSchema();
-
- XSDComponentSelectionProvider provider = new XSDComponentSelectionProvider(currentIFile, schema);
- XSDComponentSelectionDialog dialog = new XSDComponentSelectionDialog(shell, XSDEditorPlugin.getXSDString("_UI_LABEL_SET_TYPE"), provider);
- provider.setDialog(dialog);
-
- dialog.setBlockOnOpen(true);
- dialog.create();
-
- if (dialog.open() == Window.OK) {
- Element element = getXSDElementDeclaration().getElement();
- XSDSetTypeHelper helper = new XSDSetTypeHelper(currentIFile, schema);
- helper.setType(element, "type", dialog.getSelection());
- }
-
-
- }
- // just ignore type edit for element ref's
- }
-
-
- private void performDirectEditForLabel()
- {
- if (getXSDElementDeclaration().isElementDeclarationReference())
- {
- ComboBoxCellEditorManager manager = new ComboBoxCellEditorManager(this, label)
- {
- protected List computeComboContent()
- {
- XSDSchema schema = getXSDElementDeclaration().getSchema();
- List globalElementNameList = new ArrayList();
- if (schema != null)
- {
- TypesHelper typesHelper = new TypesHelper(schema);
- globalElementNameList = typesHelper.getGlobalElements();
- }
- return globalElementNameList;
- }
-
- public void performModify(String value)
- {
- getXSDElementDeclaration().getElement().setAttribute("ref", value);
- }
- };
- simpleDirectEditPolicy.setDelegate(manager);
- manager.show();
- }
- else
- {
- ComponentNameDirectEditManager manager = new ComponentNameDirectEditManager(this, label, getXSDElementDeclaration());
- simpleDirectEditPolicy.setDelegate(manager);
- manager.show();
- }
- }
-
-
- protected void createEditPolicies()
- {
- super.createEditPolicies();
- installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, simpleDirectEditPolicy);
- }
-
-
- public void activate()
- {
- super.activate();
- if (getXSDParticle() != null)
- {
- XSDModelAdapterFactory.addModelAdapterListener(getXSDParticle(), this);
- }
- }
- /**
- * Apart from the deactivation done in super, the source
- * and target connections are deactivated, and the visual
- * part of the this is removed.
- *
- * @see #activate()
- */
- public void deactivate()
- {
- if (getXSDParticle() != null)
- {
- XSDModelAdapterFactory.removeModelAdapterListener(getXSDParticle(), this);
- }
- super.deactivate();
- }
-
- public boolean isContentIconLabelSelected()
- {
- return isContentIconLabelSelected;
- }
-
- protected void addChildVisual(EditPart childEditPart, int index)
- {
- IFigure child = ((GraphicalEditPart)childEditPart).getFigure();
- if (childEditPart instanceof SimpleTypeDefinitionEditPart)
- {
- graphNodeFigure.getIconArea().add(child, index+ 1);
- SpacingFigure spacingFigure = new SpacingFigure();
- graphNodeFigure.getIconArea().add(spacingFigure, index+1);
- }
- else
- {
- getContentPane().add(child, index);
- }
- }
-
- protected void removeChildVisual(EditPart childEditPart)
- {
- IFigure child = ((GraphicalEditPart)childEditPart).getFigure();
- if (childEditPart instanceof SimpleTypeDefinitionEditPart)
- {
- graphNodeFigure.getIconArea().remove(child);
- }
- else
- {
- super.removeChildVisual(childEditPart);
- }
- }
-
- public void doEditName()
- {
- ComponentNameDirectEditManager manager = new ComponentNameDirectEditManager(this, label, getXSDElementDeclaration());
- simpleDirectEditPolicy.setDelegate(manager);
- manager.show();
- }
-
-}

Back to the top