Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider')
-rw-r--r--jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/AddEntityContext.java54
-rw-r--r--jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IAddEntityContext.java26
-rw-r--r--jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IJPAEditorFeatureProvider.java102
-rw-r--r--jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IJPAEditorImageCreator.java49
-rw-r--r--jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorContextMenuProvider.java45
-rw-r--r--jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorDiagramTypeProvider.java317
-rw-r--r--jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorFeatureProvider.java641
-rw-r--r--jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorImageCreator.java110
-rw-r--r--jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorImageProvider.java95
-rw-r--r--jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorToolBehaviorProvider.java619
10 files changed, 0 insertions, 2058 deletions
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/AddEntityContext.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/AddEntityContext.java
deleted file mode 100644
index 4974d9aa02..0000000000
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/AddEntityContext.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * <copyright>
- *
- * Copyright (c) 2005, 2010 SAP AG.
- * 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:
- * Petya Sabeva - initial API, implementation and documentation
- *
- * </copyright>
- *
- *******************************************************************************/
-package org.eclipse.jpt.jpadiagrameditor.ui.internal.provider;
-
-import org.eclipse.graphiti.features.context.impl.AddContext;
-
-public class AddEntityContext extends AddContext implements IAddEntityContext{
- private boolean primaryCollapsed;
- private boolean relationCollapsed;
- private boolean basicCollapsed;
-
- public boolean isPrimaryCollapsed() {
- return primaryCollapsed;
- }
- public void setPrimaryCollapsed(boolean primaryCollapsed) {
- this.primaryCollapsed = primaryCollapsed;
- }
-
- public boolean isRelationCollapsed() {
- return relationCollapsed;
- }
- public void setRelationCollapsed(boolean relationCollapsed) {
- this.relationCollapsed = relationCollapsed;
- }
-
- public AddEntityContext(boolean primaryCollapsed,
- boolean relationCollapsed, boolean basicCollapsed) {
- super();
- this.primaryCollapsed = primaryCollapsed;
- this.relationCollapsed = relationCollapsed;
- this.basicCollapsed = basicCollapsed;
- }
-
- public boolean isBasicCollapsed() {
- return basicCollapsed;
- }
- public void setBasicCollapsed(boolean basicCollapsed) {
- this.basicCollapsed = basicCollapsed;
- }
-
-}
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IAddEntityContext.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IAddEntityContext.java
deleted file mode 100644
index c6d17c51a5..0000000000
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IAddEntityContext.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * <copyright>
- *
- * Copyright (c) 2005, 2010 SAP AG.
- * 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:
- * Petya Sabeva - initial API, implementation and documentation
- *
- * </copyright>
- *
- *******************************************************************************/
-package org.eclipse.jpt.jpadiagrameditor.ui.internal.provider;
-
-public interface IAddEntityContext {
-
- public abstract boolean isPrimaryCollapsed();
-
- public abstract boolean isRelationCollapsed();
-
- public abstract boolean isBasicCollapsed();
-
-} \ No newline at end of file
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IJPAEditorFeatureProvider.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IJPAEditorFeatureProvider.java
deleted file mode 100644
index 995bbc2bdb..0000000000
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IJPAEditorFeatureProvider.java
+++ /dev/null
@@ -1,102 +0,0 @@
-/*******************************************************************************
- * <copyright>
- *
- * Copyright (c) 2005, 2010 SAP AG.
- * 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:
- * Stefan Dimov - initial API, implementation and documentation
- *
- * </copyright>
- *
- *******************************************************************************/
-package org.eclipse.jpt.jpadiagrameditor.ui.internal.provider;
-
-import java.util.Properties;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.graphiti.features.IDeleteFeature;
-import org.eclipse.graphiti.features.IFeatureProvider;
-import org.eclipse.graphiti.features.context.IDeleteContext;
-import org.eclipse.graphiti.features.custom.ICustomFeature;
-import org.eclipse.graphiti.mm.pictograms.Shape;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jpt.jpa.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.jpa.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.jpa.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.modelintegration.util.IModelIntegrationUtil;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.relations.IRelation;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.relations.IRelation.RelDir;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.relations.IRelation.RelType;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.IGraphicsUpdater;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.IJPAEditorUtil;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.IPeServiceUtil;
-
-
-public interface IJPAEditorFeatureProvider extends IFeatureProvider{
-
- public ICompilationUnit getCompilationUnit(JavaPersistentType jpt);
-
- public boolean hasObjectWithName(String name);
-
- public String getKeyForBusinessObject(Object bo);
-
- public Object remove(String key);
-
- public Object remove(String key, boolean save);
-
- public IRelation getRelationRelatedToAttribute(JavaPersistentAttribute jpa);
-
- public boolean existsRelation(JavaPersistentType jpt1, JavaPersistentType jpt2);
-
- public Object getBusinessObjectForKey(String key);
-
- public void addJPTForUpdate(String jptName);
-
- public boolean doesRelationExist(JavaPersistentType owner,
- JavaPersistentType inverse,
- String ownerAttributeName,
- RelType relType,
- RelDir relDir);
-
- public void restoreEntity(JavaPersistentType jpt);
-
- public void addRemoveIgnore(JavaPersistentType jpt, String atName);
-
- public void addAddIgnore(JavaPersistentType jpt, String atName);
-
- public void putKeyToBusinessObject(String key, Object bo);
-
- public int getAttribsNum(Shape sh);
-
- public int increaseAttribsNum(Shape sh);
-
- public int decreaseAttribsNum(Shape sh);
-
- public void replaceAttribute(JavaPersistentAttribute oldAt, JavaPersistentAttribute newAt);
-
- public void renewAttributeJoiningStrategyPropertyListener(JavaPersistentAttribute jpa);
-
- public IPeServiceUtil getPeUtil();
-
- public IJPAEditorUtil getJPAEditorUtil();
-
- public IDeleteFeature getDeleteFeature(IDeleteContext context);
-
- public ICustomFeature getAddAllEntitiesFeature();
-
- public IModelIntegrationUtil getMoinIntegrationUtil();
-
- public IGraphicsUpdater getGraphicsUpdater();
-
- public void addAttribForUpdate(PersistenceUnit pu, String entAtMappedBy);
-
- public TransactionalEditingDomain getTransactionalEditingDomain();
-
- public Properties loadProperties(IProject project);
-
-} \ No newline at end of file
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IJPAEditorImageCreator.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IJPAEditorImageCreator.java
deleted file mode 100644
index 625d575b27..0000000000
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/IJPAEditorImageCreator.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*******************************************************************************
- * <copyright>
- *
- * Copyright (c) 2005, 2010 SAP AG.
- * 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:
- * Kiril Mitov - initial API, implementation and documentation
- *
- * </copyright>
- *
- *******************************************************************************/
-package org.eclipse.jpt.jpadiagrameditor.ui.internal.provider;
-
-import org.eclipse.graphiti.mm.algorithms.Polyline;
-import org.eclipse.graphiti.mm.pictograms.Connection;
-import org.eclipse.graphiti.mm.pictograms.ConnectionDecorator;
-import org.eclipse.graphiti.mm.pictograms.Diagram;
-
-public interface IJPAEditorImageCreator {
-
- static public enum RelEndDir {
- UP,
- LEFT,
- RIGHT,
- DOWN
- }
-
- public Polyline createConnectionLine(Diagram d, Connection connection);
-
- //public ConnectionDecorator createTextConnectionDecorator(Connection connection, String text, double location);
-
- public ConnectionDecorator createArrowConnectionDecorator(Connection connection, double location);
-
- public ConnectionDecorator createManyEndWithArrowDecorator(Connection connection, double location);
-
- public ConnectionDecorator createManyStartDecorator(Connection connection, double location);
-
- public ConnectionDecorator createManyEndDecorator(Connection connection, double location);
-
- public ConnectionDecorator createIconConnectionDecorator(Connection connection, String iconId, double location);
-
- public ConnectionDecorator createCardinalityConnectionDecorator(Diagram d, Connection c, String text, double location);
-
-
-}
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorContextMenuProvider.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorContextMenuProvider.java
deleted file mode 100644
index 3b15f9ba17..0000000000
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorContextMenuProvider.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*******************************************************************************
- * <copyright>
- *
- * Copyright (c) 2005, 2010 SAP AG.
- * 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:
- * Stefan Dimov - initial API, implementation and documentation
- *
- * </copyright>
- *
- *******************************************************************************/
-package org.eclipse.jpt.jpadiagrameditor.ui.internal.provider;
-
-import org.eclipse.gef.EditPartViewer;
-import org.eclipse.gef.ui.actions.ActionRegistry;
-import org.eclipse.graphiti.ui.editor.DiagramEditorContextMenuProvider;
-import org.eclipse.graphiti.ui.internal.config.IConfigurationProvider;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.swt.graphics.Point;
-
-@SuppressWarnings("restriction")
-public class JPAEditorContextMenuProvider extends DiagramEditorContextMenuProvider {
- public JPAEditorContextMenuProvider(EditPartViewer viewer,
- ActionRegistry registry,
- IConfigurationProvider configurationProvider) {
- super(viewer, registry, configurationProvider);
- }
-
-
- protected void addDefaultMenuGroupEdit(IMenuManager manager, Point menuLocation) {
- }
-
- protected void addActionToMenuIfAvailable(IMenuManager manager, String actionId, String menuGroup) {
- if (actionId.equals("predefined remove action") || //$NON-NLS-1$
- actionId.equals("predefined update action")) //$NON-NLS-1$
- return;
- super.addActionToMenuIfAvailable(manager, actionId, menuGroup);
- }
-
-
-}
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorDiagramTypeProvider.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorDiagramTypeProvider.java
deleted file mode 100644
index d89265d328..0000000000
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorDiagramTypeProvider.java
+++ /dev/null
@@ -1,317 +0,0 @@
-/*******************************************************************************
- * <copyright>
- *
- * Copyright (c) 2005, 2011 SAP AG.
- * 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:
- * Stefan Dimov - initial API, implementation and documentation
- *
- * </copyright>
- *
- *******************************************************************************/
-package org.eclipse.jpt.jpadiagrameditor.ui.internal.provider;
-
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.HashSet;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.emf.transaction.RecordingCommand;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.emf.transaction.util.TransactionUtil;
-import org.eclipse.graphiti.dt.AbstractDiagramTypeProvider;
-import org.eclipse.graphiti.features.IFeatureProvider;
-import org.eclipse.graphiti.features.context.impl.AddContext;
-import org.eclipse.graphiti.features.context.impl.CustomContext;
-import org.eclipse.graphiti.features.context.impl.RemoveContext;
-import org.eclipse.graphiti.mm.pictograms.Connection;
-import org.eclipse.graphiti.mm.pictograms.Diagram;
-import org.eclipse.graphiti.mm.pictograms.PictogramElement;
-import org.eclipse.graphiti.mm.pictograms.Shape;
-import org.eclipse.graphiti.platform.IDiagramEditor;
-import org.eclipse.graphiti.services.Graphiti;
-import org.eclipse.graphiti.tb.IToolBehaviorProvider;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jpt.jpa.core.JpaProject;
-import org.eclipse.jpt.jpa.core.MappingKeys;
-import org.eclipse.jpt.jpa.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.jpa.core.context.persistence.ClassRef;
-import org.eclipse.jpt.jpa.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.JPADiagramEditor;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.facade.EclipseFacade;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.AddAllEntitiesFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.AddJPAEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.RemoveRelationFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.i18n.JPAEditorMessages;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.modelintegration.util.ModelIntegrationUtil;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.EntitiesCoordinatesXML;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPACheckSum;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPAEditorConstants;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPASolver;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JpaArtifactFactory;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.SizePosition;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.ui.IWorkbenchPage;
-import org.eclipse.ui.PlatformUI;
-
-
-public class JPAEditorDiagramTypeProvider extends AbstractDiagramTypeProvider {
-
- private IToolBehaviorProvider[] toolBehaviorProviders;
- public final static String ID = "org.eclipse.jpt.jpadiagrameditor.ui.provider.JPAEditorDiagramTypeProvider"; //$NON-NLS-1$
- boolean isDisposed = false;
- boolean readOnly = false;
-
- public JPAEditorDiagramTypeProvider() {
- IFeatureProvider fp = new JPAEditorFeatureProvider(this, new JPASolver());
- setFeatureProvider(fp);
- }
-
- @Override
- public void init(Diagram diagram, IDiagramEditor diagramEditor) {
- super.init(diagram, diagramEditor);
- if (getTargetJPAProject() == null)
- closeEditor();
- JPAEditorDiagramTypeProvider provider = ModelIntegrationUtil.getProviderByDiagram(diagram.getName());
- if ((provider != null) && provider.isAlive())
- provider.getDiagramEditor().getSite().getWorkbenchWindow().getActivePage().closeEditor(provider.getDiagramEditor(), true);
- }
-
-
- @Override
- public IToolBehaviorProvider[] getAvailableToolBehaviorProviders() {
- if (toolBehaviorProviders == null) {
- toolBehaviorProviders =
- new IToolBehaviorProvider[] { new JPAEditorToolBehaviorProvider(this, EclipseFacade.INSTANCE) };
- }
- return toolBehaviorProviders;
- }
-
- @Override
- public JPAEditorFeatureProvider getFeatureProvider() {
- return (JPAEditorFeatureProvider)super.getFeatureProvider();
- }
-
- @SuppressWarnings("restriction")
- public boolean hasToAdd() {
- JpaProject project = getTargetJPAProject();
- PersistenceUnit unit = project.getRootContextNode().getPersistenceXml().
- getPersistence().getPersistenceUnits().iterator().next();
-
- for (ClassRef classRef : unit.getClassRefs()) {
- if (classRef.getJavaPersistentType() != null) {
- JavaPersistentType jpt = classRef.getJavaPersistentType();
- if (jpt.getMappingKey() == MappingKeys.ENTITY_TYPE_MAPPING_KEY) {
- PictogramElement pe = getFeatureProvider().getPictogramElementForBusinessObject(jpt);
- if (pe == null)
- return true;
- }
- }
- }
- return false;
- }
-
-
- @Override
- public void postInit() {
- final String jptName = getDiagramEditor().getPartProperty(JPAEditorConstants.OPEN_WHOLE_PERSISTENCE_UNIT_EDITOR_PROPERTY);
- if (jptName != null) {
- boolean hasToAdd = hasToAdd();
- boolean readOnly = openPersistedDiagram(hasToAdd);
- if (hasToAdd && !readOnly)
- addRemainingEntities();
- } else
- try {
- openPersistedDiagram(false);
- } catch (NullPointerException e) {
- return;
- }
- }
-
- private void addRemainingEntities() {
- final AddAllEntitiesFeature feature = new AddAllEntitiesFeature(getFeatureProvider());
- final CustomContext context = new CustomContext();
- TransactionalEditingDomain ted = ModelIntegrationUtil.getTransactionalEditingDomain(feature.getFeatureProvider().getDiagramTypeProvider().getDiagram());
- ted.getCommandStack().execute(new RecordingCommand(ted) {
- @Override
- protected void doExecute() {
- feature.execute(context);
- }
- });
- }
-
- private void closeEditor() {
- PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
- public void run() {
- IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- page.closeEditor(getDiagramEditor(), false);
- }
- });
- }
-
- private boolean openPersistedDiagram(boolean hasToAdd) {
- final JpaProject proj = getTargetJPAProject();
- IProject project = proj.getProject();
- final Diagram diagram = getDiagram();
- ModelIntegrationUtil.putProjectToDiagram(project, diagram);
- PersistenceUnit pu = JpaArtifactFactory.instance().getPersistenceUnit(proj);
- String diagramName = pu.getName();
- IPath path = ModelIntegrationUtil.getDiagramsFolderPath(project).append(diagramName).addFileExtension(ModelIntegrationUtil.DIAGRAM_FILE_EXTENSION);
- final IFile f = ResourcesPlugin.getWorkspace().getRoot().getFile(path);
- boolean readOnly = (f != null) && f.exists() && f.isReadOnly();
- if (readOnly) {
- if (JPACheckSum.INSTANCE().isModelDifferentFromDiagram(diagram, proj) || hasToAdd) {
- String message = hasToAdd ? JPAEditorMessages.JPAEditorDiagramTypeProvider_JPADiagramReadOnlyHasToAddMsg :
- JPAEditorMessages.JPAEditorDiagramTypeProvider_JPADiagramReadOnlyMsg;
- MessageDialog dialog = new MessageDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
- JPAEditorMessages.JPAEditorDiagramTypeProvider_JPADiagramReadOnlyTitle, null, message,
- MessageDialog.INFORMATION, new String[] {JPAEditorMessages.BTN_OK, JPAEditorMessages.BTN_CANCEL}, 0) {
- @Override
- protected int getShellStyle() {
- return SWT.TITLE | SWT.BORDER
- | SWT.APPLICATION_MODAL
- | getDefaultOrientation();
- }
- };
- if (dialog.open() == 1) {
- closeEditor();
- return true;
- } else {
- IStatus stat = ResourcesPlugin.getWorkspace().validateEdit(new IFile[]{f}, null);
- if (!stat.isOK()) {
- message = NLS.bind(JPAEditorMessages.JPAEditorDiagramTypeProvider_cantMakeDiagramWritableMsg,
- stat.getMessage());;
- dialog = new MessageDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
- JPAEditorMessages.JPAEditorDiagramTypeProvider_cantMakeDiagramWritableTitle, null, message,
- MessageDialog.CANCEL, new String[] {JPAEditorMessages.BTN_OK}, 0) {
- @Override
- protected int getShellStyle() {
- return SWT.CLOSE | SWT.TITLE | SWT.BORDER
- | SWT.APPLICATION_MODAL
- | getDefaultOrientation();
- }
- };
- dialog.open();
- closeEditor();
- return true;
- } else {
- readOnly = false;
- }
- }
- } else {
- return readOnly;
- }
- }
-
- removeConnections();
-
- final Hashtable<String, SizePosition> marks = new Hashtable<String, SizePosition>();
- EntitiesCoordinatesXML xml = new EntitiesCoordinatesXML(project.getName());
- xml.load(marks);
- xml.clean();
-
- List<Shape> picts = diagram.getChildren();
- Iterator<Shape> it = picts.iterator();
- HashSet<Shape> toDelete = new HashSet<Shape>();
- // collecting data from the saved pictograms
- while (it.hasNext()) {
- Shape pict = it.next();
- toDelete.add(pict);
- }
-
- final Iterator<Shape> iter = toDelete.iterator();
-
- TransactionalEditingDomain ted = TransactionUtil.getEditingDomain(diagram);
- ted.getCommandStack().execute(new RecordingCommand(ted) {
- @Override
- protected void doExecute() {
- while (iter.hasNext())
- Graphiti.getPeService().deletePictogramElement(iter.next());
- Collection<Connection> cns = diagram.getConnections();
- Iterator<Connection> itera = cns.iterator();
- Set<Connection> toDel = new HashSet<Connection>();
- while (itera.hasNext())
- toDel.add(itera.next());
- itera = toDel.iterator();
- while (itera.hasNext())
- Graphiti.getPeService().deletePictogramElement(itera.next());
-
- Enumeration<String> itr = marks.keys();
-
- // create new pictograms
- while (itr.hasMoreElements()) {
- String entityName = itr.nextElement();
- JavaPersistentType jpt = JpaArtifactFactory.instance().getContextPersistentType(proj, entityName);
- if (jpt != null) {
- SizePosition sp = marks.get(entityName);
- AddContext ctx = new AddEntityContext(sp.primaryCollapsed,
- sp.relationCollapsed, sp.basicCollapsed);
- ctx.setNewObject(jpt);
- ctx.setTargetContainer(getDiagram());
- ctx.setWidth(sp.getWidth());
- ctx.setHeight(sp.getHeight());
- ctx.setX(sp.getX());
- ctx.setY(sp.getY());
- AddJPAEntityFeature ft = new AddJPAEntityFeature(getFeatureProvider());
- ft.add(ctx);
- }
- }
- }
- });
- getDiagramEditor().saveWithoutEntities(new NullProgressMonitor());
-
- // delete old pictograms
- return false;
- }
-
- private void removeConnections() {
- Collection<org.eclipse.graphiti.mm.pictograms.Connection> cons = getDiagram().getConnections();
- Iterator<org.eclipse.graphiti.mm.pictograms.Connection> consIt = cons.iterator();
- Collection<org.eclipse.graphiti.mm.pictograms.Connection> allCons = new HashSet<org.eclipse.graphiti.mm.pictograms.Connection>();
- while (consIt.hasNext()) {
- org.eclipse.graphiti.mm.pictograms.Connection con = consIt.next();
- allCons.add(con);
- }
- consIt = allCons.iterator();
- while (consIt.hasNext()) {
- org.eclipse.graphiti.mm.pictograms.Connection con = consIt.next();
- RemoveContext ctx = new RemoveContext(con);
- RemoveRelationFeature ft = new RemoveRelationFeature(getFeatureProvider());
- ft.remove(ctx);
- }
- }
-
- @Override
- public JPADiagramEditor getDiagramEditor() {
- return (JPADiagramEditor)super.getDiagramEditor();
- }
-
- private JpaProject getTargetJPAProject() {
- return ModelIntegrationUtil.getProjectByDiagram(getDiagram().getName());
- }
-
- public boolean isAlive() {
- return !isDisposed;
- }
-
- @Override
- public void dispose() {
- super.dispose();
- setFeatureProvider(null);
- isDisposed = true;
- }
-} \ No newline at end of file
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorFeatureProvider.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorFeatureProvider.java
deleted file mode 100644
index bc94dccfee..0000000000
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorFeatureProvider.java
+++ /dev/null
@@ -1,641 +0,0 @@
-/*******************************************************************************
- * <copyright>
- *
- * Copyright (c) 2005, 2010 SAP AG.
- * 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:
- * Stefan Dimov - initial API, implementation and documentation
- *
- * </copyright>
- *
- *******************************************************************************/
-package org.eclipse.jpt.jpadiagrameditor.ui.internal.provider;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.emf.transaction.RecordingCommand;
-import org.eclipse.emf.transaction.TransactionalEditingDomain;
-import org.eclipse.emf.transaction.util.TransactionUtil;
-import org.eclipse.graphiti.dt.IDiagramTypeProvider;
-import org.eclipse.graphiti.features.IAddFeature;
-import org.eclipse.graphiti.features.ICreateConnectionFeature;
-import org.eclipse.graphiti.features.ICreateFeature;
-import org.eclipse.graphiti.features.IDeleteFeature;
-import org.eclipse.graphiti.features.IDirectEditingFeature;
-import org.eclipse.graphiti.features.ILayoutFeature;
-import org.eclipse.graphiti.features.IMoveConnectionDecoratorFeature;
-import org.eclipse.graphiti.features.IMoveShapeFeature;
-import org.eclipse.graphiti.features.IReason;
-import org.eclipse.graphiti.features.IRemoveFeature;
-import org.eclipse.graphiti.features.IResizeShapeFeature;
-import org.eclipse.graphiti.features.context.IAddContext;
-import org.eclipse.graphiti.features.context.ICustomContext;
-import org.eclipse.graphiti.features.context.IDeleteContext;
-import org.eclipse.graphiti.features.context.IDirectEditingContext;
-import org.eclipse.graphiti.features.context.ILayoutContext;
-import org.eclipse.graphiti.features.context.IMoveConnectionDecoratorContext;
-import org.eclipse.graphiti.features.context.IMoveShapeContext;
-import org.eclipse.graphiti.features.context.IRemoveContext;
-import org.eclipse.graphiti.features.context.IResizeShapeContext;
-import org.eclipse.graphiti.features.context.impl.AddConnectionContext;
-import org.eclipse.graphiti.features.custom.ICustomFeature;
-import org.eclipse.graphiti.features.impl.Reason;
-import org.eclipse.graphiti.internal.services.GraphitiInternal;
-import org.eclipse.graphiti.mm.algorithms.GraphicsAlgorithm;
-import org.eclipse.graphiti.mm.algorithms.Rectangle;
-import org.eclipse.graphiti.mm.algorithms.Text;
-import org.eclipse.graphiti.mm.pictograms.Anchor;
-import org.eclipse.graphiti.mm.pictograms.Connection;
-import org.eclipse.graphiti.mm.pictograms.ContainerShape;
-import org.eclipse.graphiti.mm.pictograms.Diagram;
-import org.eclipse.graphiti.mm.pictograms.PictogramElement;
-import org.eclipse.graphiti.mm.pictograms.Shape;
-import org.eclipse.graphiti.services.Graphiti;
-import org.eclipse.graphiti.ui.features.DefaultFeatureProvider;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.internal.core.CompilationUnit;
-import org.eclipse.jdt.internal.core.SourceType;
-import org.eclipse.jpt.jpa.core.JpaNode;
-import org.eclipse.jpt.jpa.core.context.PersistentAttribute;
-import org.eclipse.jpt.jpa.core.context.java.JavaEntity;
-import org.eclipse.jpt.jpa.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.jpa.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.jpa.core.context.persistence.PersistenceUnit;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.JPADiagramEditorPlugin;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.AddAllEntitiesFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.AddAttributeFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.AddJPAEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.AddRelationFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.ClickAddAttributeButtonFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.ClickRemoveAttributeButtonFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CollapseAllEntitiesFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CollapseCompartmentShapeFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CollapseEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CreateJPAEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CreateJPAEntityFromMappedSuperclassFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CreateManyToManyBiDirRelationFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CreateManyToManyUniDirRelationFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CreateManyToOneBiDirRelationFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CreateManyToOneUniDirRelationFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CreateOneToManyUniDirRelationFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CreateOneToOneBiDirRelationFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CreateOneToOneUniDirRelationFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.DeleteJPAEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.DeleteRelationFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.DirectEditAttributeFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.DirectEditJPAEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.ExpandCompartmentShapeFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.ExpandEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.JPAMoveConnectionDecoratorFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.LayoutJPAEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.MoveAttributeFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.MoveEntityShapeFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.RemoveAttributeFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.RemoveJPAEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.RemoveRelationFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.ResizeAttributeFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.ResizeJPAEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.modelintegration.util.IModelIntegrationUtil;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.modelintegration.util.ModelIntegrationUtil;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.modelintegration.util.ModelIntegrationUtilImpl;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.propertypage.JPADiagramPropertyPage;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.relations.AbstractRelation;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.relations.IRelation;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.relations.IRelation.RelDir;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.relations.IRelation.RelType;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.GraphicsUpdaterImpl;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.IGraphicsUpdater;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.IJPAEditorUtil;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.IJpaSolver;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.IPeServiceUtil;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPAEditorConstants;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPAEditorUtil;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPAEditorUtilImpl;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPASolver;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JpaArtifactFactory;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.PeServiceUtilImpl;
-import org.eclipse.ui.PlatformUI;
-
-
-@SuppressWarnings("restriction")
-public class JPAEditorFeatureProvider extends DefaultFeatureProvider implements IJPAEditorFeatureProvider {
-
- private ClickAddAttributeButtonFeature clickAddAttBtnFeat = null;
- private ClickRemoveAttributeButtonFeature clickRemoveAttBtnFeat = null;
- private IPeServiceUtil peUtil = new PeServiceUtilImpl();
- private IJPAEditorUtil jpaEditorUtil = new JPAEditorUtilImpl();
- private IModelIntegrationUtil moinIntegrationUtil = new ModelIntegrationUtilImpl();
- private IGraphicsUpdater graphicsUpdater = new GraphicsUpdaterImpl();
-
- public JPAEditorFeatureProvider(IDiagramTypeProvider dtp, IJpaSolver is) {
- super(dtp);
- is.setFeatureProvider(this);
- this.setIndependenceSolver(is);
- }
-
- public void stopThread() {
- if (getIndependenceSolver() != null)
- ((JPASolver)getIndependenceSolver()).stopThread();
- }
-
- public void addJPTForUpdate(String jptName) {
- ((JPASolver)getIndependenceSolver()).addJPTForUpdate(jptName);
- }
-
-
- public void addRemoveIgnore(JavaPersistentType jpt, String atName) {
- ((JPASolver)getIndependenceSolver()).addRemoveIgnore(jpt.getName() + "." + atName); //$NON-NLS-1$
- }
-
- public void addAddIgnore(JavaPersistentType jpt, String atName) {
- ((JPASolver)getIndependenceSolver()).addAddIgnore(jpt.getName() + "." + atName); //$NON-NLS-1$
- }
-
- public HashSet<String> getAddIgnore() {
- return ((JPASolver)getIndependenceSolver()).getAddIgnore();
- }
-
-
- public void addAttribForUpdate(PersistenceUnit pu, String entAtMappedBy) {
- ((JPASolver)getIndependenceSolver()).addAttribForUpdate(pu, entAtMappedBy);
- }
-
- public boolean existsRelation(JavaPersistentType jpt1, JavaPersistentType jpt2) {
- return ((JPASolver)getIndependenceSolver()).existsRelation(jpt1, jpt2);
- }
-
- @Override
- public IAddFeature getAddFeature(IAddContext context) {
- Object newObj = context.getNewObject();
- if (newObj instanceof JavaPersistentType) {
- return new AddJPAEntityFeature(this);
- } else if (newObj instanceof AbstractRelation) {
- return new AddRelationFeature(this);
- } else if (newObj instanceof PersistentAttribute) {
- if (Diagram.class.isInstance(context.getTargetContainer())) {
- return null;
- } else {
- return new AddAttributeFeature(this);
- }
- } else if (newObj instanceof CompilationUnit) {
- CompilationUnit cu = (CompilationUnit)newObj;
- JavaPersistentType jpt = JPAEditorUtil.getJPType(cu);
- if (jpt != null) return new AddJPAEntityFeature(this);
- } else if ((newObj instanceof JpaNode)) {
- return new AddAllEntitiesFeature(this);
- } else if (newObj instanceof SourceType) {
- return new AddJPAEntityFeature(this);
- }
- return super.getAddFeature(context);
- }
-
-
- @Override
- public ICreateFeature[] getCreateFeatures() {
- return new ICreateFeature[] { new CreateJPAEntityFeature(this), new CreateJPAEntityFromMappedSuperclassFeature(this) };
- }
-
- @Override
- public IDeleteFeature getDeleteFeature(IDeleteContext context) {
- PictogramElement pe = context.getPictogramElement();
- Object bo = getBusinessObjectForPictogramElement(pe);
- if (bo instanceof JavaPersistentType) {
- return new DeleteJPAEntityFeature(this);
- } else if (bo instanceof AbstractRelation) {
- return new DeleteRelationFeature(this);
- } else if (bo instanceof JavaPersistentAttribute) {
- return new ClickRemoveAttributeButtonFeature(this);
- }
- return null;
- }
-
- @Override
- public ICustomFeature[] getCustomFeatures(ICustomContext context) {
- ICustomFeature[] ret = super.getCustomFeatures(context);
- List<ICustomFeature> retList = new ArrayList<ICustomFeature>();
- for (int i = 0; i < ret.length; i++) {
- retList.add(ret[i]);
- }
-
- retList.add(new CollapseAllEntitiesFeature(this));
-
- retList.add(new CollapseEntityFeature(this));
- retList.add(new ExpandEntityFeature(this));
-
- retList.add(new CollapseCompartmentShapeFeature(this));
- retList.add(new ExpandCompartmentShapeFeature(this));
-
- ret = retList.toArray(ret);
- return ret;
- }
-
-
- @Override
- public IResizeShapeFeature getResizeShapeFeature(IResizeShapeContext context) {
- PictogramElement pe = context.getPictogramElement();
- if (getBusinessObjectForPictogramElement(pe) instanceof JavaPersistentType) {
- return new ResizeJPAEntityFeature(this);
- }
- GraphicsAlgorithm ga = pe.getGraphicsAlgorithm();
- if (ga == null)
- return super.getResizeShapeFeature(context);
- List<GraphicsAlgorithm> ch = ga.getGraphicsAlgorithmChildren();
- if ((ch != null) && (ch.size() > 0) && (ch.get(0) instanceof Text)) {
- return new ResizeAttributeFeature(this);
- }
-
- return super.getResizeShapeFeature(context);
- }
-
-
-
-
- @Override
- public ILayoutFeature getLayoutFeature(ILayoutContext context) {
- PictogramElement pictogramElement = context.getPictogramElement();
- Object bo = getBusinessObjectForPictogramElement(pictogramElement);
- if (bo instanceof JavaPersistentType) {
- return new LayoutJPAEntityFeature(this);
- }
- return super.getLayoutFeature(context);
- }
-
-
- @Override
- public IRemoveFeature getRemoveFeature(IRemoveContext context) {
- PictogramElement pe = context.getPictogramElement();
- Object bo = getBusinessObjectForPictogramElement(pe);
- if (bo == null)
- super.getRemoveFeature(context);
- if (bo instanceof JavaPersistentType) {
- return new RemoveJPAEntityFeature(this);
- } else if (bo instanceof AbstractRelation) {
- return new RemoveRelationFeature(this);
- }
- GraphicsAlgorithm ga = pe.getGraphicsAlgorithm();
- if (ga == null)
- return super.getRemoveFeature(context);
- List<GraphicsAlgorithm> ch = ga.getGraphicsAlgorithmChildren();
- if ((ch != null) && (ch.size() > 0) && (ch.get(0) instanceof Text)) {
- return new RemoveAttributeFeature(this);
- }
- return super.getRemoveFeature(context);
- }
-
- @Override
- public ICreateConnectionFeature[] getCreateConnectionFeatures() {
- return new ICreateConnectionFeature[] {
- new CreateOneToOneUniDirRelationFeature(this),
- new CreateOneToOneBiDirRelationFeature(this),
- new CreateOneToManyUniDirRelationFeature(this),
- new CreateManyToOneUniDirRelationFeature(this),
- new CreateManyToOneBiDirRelationFeature(this),
- new CreateManyToManyUniDirRelationFeature(this),
- new CreateManyToManyBiDirRelationFeature(this)
- };
- }
-
- @Override
- public IReason canAdd(IAddContext context) {
- return Reason.createTrueReason();
- }
-
- public ICustomFeature getAddAllEntitiesFeature() {
- return new AddAllEntitiesFeature(this);
- }
-
- @Override
- public IMoveShapeFeature getMoveShapeFeature(IMoveShapeContext context) {
- PictogramElement pe = context.getPictogramElement();
- Object bo = getBusinessObjectForPictogramElement(pe);
- if (JavaPersistentType.class.isInstance(bo)) {
- return new MoveEntityShapeFeature(this);
- }
- if(bo == null){
- return new MoveAttributeFeature(this);
- }
- GraphicsAlgorithm ga = pe.getGraphicsAlgorithm();
- if (ga == null)
- return super.getMoveShapeFeature(context);
- List<GraphicsAlgorithm> ch = ga.getGraphicsAlgorithmChildren();
- if ((ch != null) && (ch.size() > 0) && (ch.get(0) instanceof Text)) {
- return new MoveAttributeFeature(this);
- }
- return super.getMoveShapeFeature(context);
- }
-
-
- @Override
- public IDirectEditingFeature getDirectEditingFeature(IDirectEditingContext context) {
- PictogramElement pe = context.getPictogramElement();
- GraphicsAlgorithm ga = pe.getGraphicsAlgorithm();
- if (!(ga instanceof Rectangle))
- return super.getDirectEditingFeature(context);
- List<GraphicsAlgorithm> ch = ga.getGraphicsAlgorithmChildren();
- if ((ch == null) || (ch.size() == 0))
- return super.getDirectEditingFeature(context);
- ga = ch.get(0);
- if (!(ga instanceof Text))
- return super.getDirectEditingFeature(context);
- if(((Text)ga).getFont().isItalic())
- return super.getDirectEditingFeature(context);
- Object bo = getBusinessObjectForPictogramElement(pe);
- if (bo != null) {
- if (bo instanceof JavaPersistentAttribute) {
- return new DirectEditAttributeFeature(this);
- }
- }
- if (!(pe instanceof Shape))
- return super.getDirectEditingFeature(context);
- Shape sh = (Shape)pe;
- ContainerShape csh = sh.getContainer();
- if (csh == null)
- return super.getDirectEditingFeature(context);
- bo = getBusinessObjectForPictogramElement(csh);
- if (bo instanceof JavaPersistentType){
- return new DirectEditJPAEntityFeature(this);
- }
- return super.getDirectEditingFeature(context);
- }
-
- public void addMissingRelations(JavaPersistentType newEntity, ContainerShape newShape) {
- Collection<PictogramElement> allContainedPictogramElements = Graphiti.getPeService()
- .getAllContainedPictogramElements(getDiagramTypeProvider().getDiagram());
-
- for (PictogramElement pe : allContainedPictogramElements) {
- if ((pe != newShape) && (pe instanceof ContainerShape)) {
- JavaPersistentType entity = (JavaPersistentType)getBusinessObjectForPictogramElement(pe);
- AbstractRelation newRel = produceNecessaryRelation(newEntity, entity);
- if (newRel != null) {
- JavaPersistentType owner = newRel.getOwner();
- JavaPersistentType inverse = newRel.getInverse();
- ContainerShape ownerShape = (ContainerShape)getPictogramElementForBusinessObject(owner);
- ContainerShape inverseShape = (ContainerShape)getPictogramElementForBusinessObject(inverse);
- AddRelationFeature f = new AddRelationFeature(this);
- AddConnectionContext ctx =
- new AddConnectionContext(JPAEditorUtil.getAnchor(ownerShape), JPAEditorUtil.getAnchor(inverseShape));
- f.add(ctx);
- }
- }
- }
- }
-
- public void renewAttributeJoiningStrategyPropertyListener(JavaPersistentAttribute jpa) {
- ((JPASolver)getIndependenceSolver()).renewAttributeJoiningStrategyPropertyListener(jpa);
- }
-
- private AbstractRelation produceNecessaryRelation(JavaPersistentType ent1, JavaPersistentType ent2) {
- return null;
- }
-
- public String produceKeyForRel(JavaPersistentType jpt, String attributeName) {
- return ((JPASolver)getIndependenceSolver()).produceKeyForRel(jpt, attributeName);
- }
-
-
- public ClickAddAttributeButtonFeature getClickAddAttributeButtonFeature() {
- if (clickAddAttBtnFeat == null) {
- clickAddAttBtnFeat = new ClickAddAttributeButtonFeature(this);
- }
- return clickAddAttBtnFeat;
- }
-
- public ClickRemoveAttributeButtonFeature getClickRemoveAttributeButtonFeature() {
- if (clickRemoveAttBtnFeat == null) {
- clickRemoveAttBtnFeat = new ClickRemoveAttributeButtonFeature(this);
- }
- return clickRemoveAttBtnFeat;
- }
-
- @Override
- public IMoveConnectionDecoratorFeature getMoveConnectionDecoratorFeature(
- IMoveConnectionDecoratorContext context) {
- return new JPAMoveConnectionDecoratorFeature(this);
- }
-
- public Object getBusinessObjectForKey(String key) {
- return getIndependenceSolver().getBusinessObjectForKey(key);
- }
-
- public String getKeyForBusinessObject(Object bo) {
- return getIndependenceSolver().getKeyForBusinessObject(bo);
- }
-
- public void putKeyToBusinessObject(String key, Object bo) {
- ((JPASolver)getIndependenceSolver()).addKeyBusinessObject(key, bo);
- }
-
- public Object remove(String key) {
- return remove(key, false);
- }
-
- public Object remove(String key, boolean save) {
- Object res = getBusinessObjectForKey(key);
- if (res instanceof JavaPersistentType) {
- final JavaPersistentType jpt = (JavaPersistentType)res;
- if (save)
- JpaArtifactFactory.instance().forceSaveEntityClass(jpt, this);
- if(!(jpt.getMapping() instanceof JavaEntity)){
- PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
- public void run() {
- removeFromDiagramIfNotEntity(jpt);
- }});
- }
-
- }
- return ((JPASolver)getIndependenceSolver()).remove(key);
- }
-
-
- protected void removeAllConnections(Shape shape) {
- for (Iterator<Anchor> iter = shape.getAnchors().iterator(); iter.hasNext();) {
- Anchor anchor = iter.next();
- for (Iterator<Connection> iterator = Graphiti.getPeService().getAllConnections(anchor).iterator(); iterator.hasNext();) {
- Connection connection = iterator.next();
- if (GraphitiInternal.getEmfService().isObjectAlive(connection)) {
- Object ob = getBusinessObjectForPictogramElement(connection);
- if(ob instanceof AbstractRelation){
- String key = getKeyForBusinessObject(ob);
- ((JPASolver)getIndependenceSolver()).remove(key);
- }
- Graphiti.getPeService().deletePictogramElement(connection);
- }
- }
- }
- }
-
-
- private void removeFromDiagramIfNotEntity(final JavaPersistentType jpt) {
- final PictogramElement cs = this.getPictogramElementForBusinessObject(jpt);
- if (cs != null) {
- final Shape shape = (Shape) cs;
- TransactionalEditingDomain ted = ModelIntegrationUtil.getTransactionalEditingDomain(this
- .getDiagramTypeProvider().getDiagram());
- ted.getCommandStack().execute(new RecordingCommand(ted) {
- @Override
- protected void doExecute() {
- removeAllConnections(shape);
- Graphiti.getPeService().deletePictogramElement(cs);
- }
- });
- }
- }
-
-
-
- public boolean hasObjectWithName(String name) {
- return ((JPASolver)getIndependenceSolver()).containsKey(name);
- }
-
- public void replaceAttribute(final JavaPersistentAttribute oldAt, final JavaPersistentAttribute newAt) {
- final PictogramElement pe = this.getPictogramElementForBusinessObject(oldAt);
- if (pe == null) {
- //System.err.println("PictogramElement is null\n");
- throw new RuntimeException();
- //return;
- }
- TransactionalEditingDomain ted = TransactionUtil.getEditingDomain(pe);
- ted.getCommandStack().execute(new RecordingCommand(ted) {
- protected void doExecute() {
- JPASolver solver = (JPASolver)getIndependenceSolver();
- solver.remove(solver.getKeyForBusinessObject(oldAt));
- solver.addKeyBusinessObject(solver.getKeyForBusinessObject(newAt), newAt);
- if (newAt == null) {
- JPADiagramEditorPlugin.logError("New attribute is null\n", new Exception()); //$NON-NLS-1$
- return;
- }
- link(pe, newAt);
- GraphicsAlgorithm ga = pe.getGraphicsAlgorithm();
- if (ga == null)
- return;
- List<GraphicsAlgorithm> ch = ga.getGraphicsAlgorithmChildren();
- ((Text)ch.get(0)).setValue(newAt.getName());
- }
- });
- }
-
- public boolean doesRelationExist(JavaPersistentType owner,
- JavaPersistentType inverse,
- String ownerAttributeName,
- RelType relType,
- RelDir relDir) {
-
- String id = AbstractRelation.generateId(owner, inverse, ownerAttributeName, relType, relDir);
- return (getBusinessObjectForKey(id) != null);
- }
-
- public boolean isRelationRelatedToAttribute(JavaPersistentAttribute jpa) {
- return ((JPASolver)getIndependenceSolver()).isRelationRelatedToAttribute(jpa);
- }
-
- public IRelation getRelationRelatedToAttribute(JavaPersistentAttribute jpa) {
- return ((JPASolver)getIndependenceSolver()).getRelationRelatedToAttribute(jpa);
- }
-
- public ICompilationUnit getCompilationUnit(JavaPersistentType jpt) {
- return ((JPASolver)getIndependenceSolver()).getCompilationUnit(jpt);
- }
-
- public void restoreEntity(JavaPersistentType jpt) {
- ((JPASolver)getIndependenceSolver()).restoreEntity(jpt);
- }
-
- public int getAttribsNum(Shape sh) {
- String s = Graphiti.getPeService().getPropertyValue(sh, JPAEditorConstants.PROP_ATTRIBS_NUM);
- int res = 0;
- if (s == null) {
- setAttribsNum(0, sh);
- } else {
- res = Integer.parseInt(s);
- }
- return res;
- }
-
- public int increaseAttribsNum(Shape sh) {
- int attribsNum = getAttribsNum(sh);
- attribsNum++;
- setAttribsNum(attribsNum, sh);
- return attribsNum;
- }
-
- public int decreaseAttribsNum(Shape sh) {
- int attribsNum = getAttribsNum(sh);
- attribsNum--;
- setAttribsNum(attribsNum, sh);
- return attribsNum;
- }
-
- public void setAttribsNum(int newAttribsNum, Shape sh) {
- Graphiti.getPeService().setPropertyValue(sh, JPAEditorConstants.PROP_ATTRIBS_NUM, "" + newAttribsNum); //$NON-NLS-1$
- }
-
- /*
- public Collection<ResourceOperation> getAffectedPartitionsForModification() {
- return new HashSet<ResourceOperation>();
- }
- */
-
- public void dispose() {
- stopThread();
- ((JPASolver)getIndependenceSolver()).dispose();
- setIndependenceSolver(null);
- }
-
-
- public IPeServiceUtil getPeUtil() {
- return peUtil;
- }
-
- public IJPAEditorUtil getJPAEditorUtil() {
- return this.jpaEditorUtil;
- }
-
- public IModelIntegrationUtil getMoinIntegrationUtil() {
- return moinIntegrationUtil;
- }
-
- public IGraphicsUpdater getGraphicsUpdater() {
- return graphicsUpdater;
- }
-
- public TransactionalEditingDomain getTransactionalEditingDomain() {
- Diagram diagram = getDiagramTypeProvider().getDiagram();
- return TransactionUtil.getEditingDomain(diagram);
- }
-
- public PictogramElement getPictogramElementForBusinessObject(Object businessObject) {
- PictogramElement pe = super.getPictogramElementForBusinessObject(businessObject);
- /*
- int cnt = 0;
- while ((pe == null) && (cnt < 20)) {
- //System.out.println("loop");
- try {
- Thread.sleep(250);
- } catch (InterruptedException e) {
- }
- System.out.println("loop; hc:" + businessObject.hashCode());
- pe = super.getPictogramElementForBusinessObject(businessObject);
- cnt++;
- }
- if (pe == null) {
- System.out.println("FP - PE is null; hc:" + businessObject.hashCode());
- }
- */
- return pe;
- }
-
- public Properties loadProperties(IProject project) {
- return JPADiagramPropertyPage.loadProperties(project);
- }
-
-}
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorImageCreator.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorImageCreator.java
deleted file mode 100644
index eb3198065a..0000000000
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorImageCreator.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * <copyright>
- *
- * Copyright (c) 2005, 2010 SAP AG.
- * 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:
- * Kiril Mitov - initial API, implementation and documentation
- *
- * </copyright>
- *
- *******************************************************************************/
-package org.eclipse.jpt.jpadiagrameditor.ui.internal.provider;
-
-import org.eclipse.graphiti.mm.algorithms.Image;
-import org.eclipse.graphiti.mm.algorithms.Polyline;
-import org.eclipse.graphiti.mm.algorithms.Text;
-import org.eclipse.graphiti.mm.pictograms.Connection;
-import org.eclipse.graphiti.mm.pictograms.ConnectionDecorator;
-import org.eclipse.graphiti.mm.pictograms.Diagram;
-import org.eclipse.graphiti.mm.pictograms.FreeFormConnection;
-import org.eclipse.graphiti.services.Graphiti;
-import org.eclipse.graphiti.util.IColorConstant;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPAEditorConstants;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPAEditorUtil;
-import org.eclipse.swt.graphics.Point;
-
-public class JPAEditorImageCreator implements IJPAEditorImageCreator {
-
- public Polyline createConnectionLine(Diagram d, Connection connection) {
- Polyline polyline = Graphiti.getGaService().createPolyline(connection);
- polyline.setForeground(Graphiti.getGaService().manageColor(d, JPAEditorConstants.CONNECTION_LINE_COLOR));
- polyline.setLineWidth(JPAEditorConstants.CONNECTION_LINE_WIDTH);
- return polyline;
- }
-
- /*
- public ConnectionDecorator createTextConnectionDecorator(Connection connection, String text, double location) {
- ConnectionDecorator textDecorator = Graphiti.getPeService().createConnectionDecorator(connection, true, 0.5, true);
- Text txt = Graphiti.getGaService().createDefaultText(textDecorator);
- txt.setLineWidth(JPAEditorConstants.CONNECTION_LINE_WIDTH);
- txt.setValue(text);
- Graphiti.getGaService().manageColor(connection.getParent(), IColorConstant.BLACK);
- Graphiti.getGaService().setLocation(txt, 5, -20);
- return textDecorator;
- }
- */
-
- public ConnectionDecorator createCardinalityConnectionDecorator(Diagram d, Connection c, String text, double location) {
- ConnectionDecorator textDecorator = Graphiti.getPeService().createConnectionDecorator(c, true, location, true);
- Text txt = Graphiti.getGaService().createDefaultText(d, textDecorator);
- txt.setLineWidth(JPAEditorConstants.CONNECTION_LINE_WIDTH);
- txt.setValue(text);
- Graphiti.getGaService().manageColor(c.getParent(), IColorConstant.BLACK);
- Point pt = JPAEditorUtil.recalcTextDecoratorPosition((FreeFormConnection)c, textDecorator);
- Graphiti.getGaService().setLocation(txt, pt.x, pt.y, false);
- return textDecorator;
- }
-
- public ConnectionDecorator createArrowConnectionDecorator(Connection connection, double location) {
- ConnectionDecorator cd = Graphiti.getPeService().createConnectionDecorator(connection, false, location, true);
- Polyline arrow = null;
- arrow = Graphiti.getGaService().createPolyline(cd, new int[] { 11, 3, 0, 0, 11, -3, 11, 3});
- arrow.setForeground(Graphiti.getGaService().manageColor(connection.getParent(), JPAEditorConstants.CONNECTION_LINE_COLOR));
- arrow.setLineWidth(JPAEditorConstants.CONNECTION_LINE_WIDTH);
- return cd;
- }
-
- public ConnectionDecorator createManyEndWithArrowDecorator(Connection connection, double location) {
- ConnectionDecorator cd = Graphiti.getPeService().createConnectionDecorator(connection, false, location, true);
- Polyline arrow = null;
- arrow = Graphiti.getGaService().createPolyline(cd, new int[] { -2, 7, 6, 0, -2, -7, 6, 0, 20, 3, 20, -3, 7, 0});
- arrow.setForeground(Graphiti.getGaService().manageColor(connection.getParent(), JPAEditorConstants.CONNECTION_LINE_COLOR));
- arrow.setLineWidth(JPAEditorConstants.CONNECTION_LINE_WIDTH);
- return cd;
- }
-
- public ConnectionDecorator createManyEndDecorator(Connection connection, double location) {
- ConnectionDecorator cd = Graphiti.getPeService().createConnectionDecorator(connection, false, location, true);
- Polyline arrow = null;
- arrow = Graphiti.getGaService().createPolyline(cd, new int[] { 0, 7,
- 8, 0,
- 0, -7 });
- arrow.setForeground(Graphiti.getGaService().manageColor(connection.getParent(), JPAEditorConstants.CONNECTION_LINE_COLOR));
- arrow.setLineWidth(JPAEditorConstants.CONNECTION_LINE_WIDTH);
- return cd;
- }
-
- public ConnectionDecorator createManyStartDecorator(Connection connection, double location) {
- ConnectionDecorator cd = Graphiti.getPeService().createConnectionDecorator(connection, false, location, true);
- Polyline arrow = null;
- arrow = Graphiti.getGaService().createPolyline(cd, new int[] {0, 7,
- -8, 0,
- 0, -7 });
- arrow.setForeground(Graphiti.getGaService().manageColor(connection.getParent(), JPAEditorConstants.CONNECTION_LINE_COLOR));
- arrow.setLineWidth(JPAEditorConstants.CONNECTION_LINE_WIDTH);
- return cd;
- }
-
- public ConnectionDecorator createIconConnectionDecorator(Connection connection, String iconId, double location) {
- ConnectionDecorator iconDecorator = Graphiti.getPeService().createConnectionDecorator(connection, true, location, true);
- Image icon = Graphiti.getGaService().createImage(connection, iconId);
- Graphiti.getGaService().setLocation(icon, 5, -20);
- return iconDecorator;
- }
-
-}
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorImageProvider.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorImageProvider.java
deleted file mode 100644
index 46905aeafd..0000000000
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorImageProvider.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * <copyright>
- *
- * Copyright (c) 2005, 2010 SAP AG.
- * 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:
- * Stefan Dimov - initial API, implementation and documentation
- *
- * </copyright>
- *
- *******************************************************************************/
-package org.eclipse.jpt.jpadiagrameditor.ui.internal.provider;
-
-import org.eclipse.graphiti.ui.platform.AbstractImageProvider;
-
-public class JPAEditorImageProvider extends AbstractImageProvider {
-
- public final static String ID = "org.eclipse.jpt.jpadiagrameditor.ui.JPAEditorImageProvider"; //$NON-NLS-1$
- static final String PRE = "org.eclipse.jpt.jpadiagrameditor.ui."; //$NON-NLS-1$
- public static final String JPA_ENTITY = PRE + "entity"; //$NON-NLS-1$
- public static final String ADD_JPA_ENTITY = PRE + "add_entity"; //$NON-NLS-1$
- public static final String ADD_INHERITED_ENTITY = PRE + "mapped_superclass"; //$NON-NLS-1$
- public static final String PRIMARY_KEY = PRE + "pk"; //$NON-NLS-1$
- public static final String ICON_BASIC = PRE + "field"; //$NON-NLS-1$
- public static final String ADD_ATTRIBUTE = PRE + "add_attribute"; //$NON-NLS-1$
- public static final String REMOVE_ATTRIBUTE = PRE + "remove_attribute"; //$NON-NLS-1$
- public static final String ICON_ONE_TO_ONE = PRE + "one_to_one_relation"; //$NON-NLS-1$
- public static final String ICON_ONE_TO_MANY = PRE + "one_to_many_relation"; //$NON-NLS-1$
- public static final String ICON_MANY_TO_ONE = PRE + "many_to_one_relation"; //$NON-NLS-1$
- public static final String ICON_MANY_TO_MANY = PRE + "many_to_many_relation"; //$NON-NLS-1$
- public static final String ICON_EMBEDDED_ID = PRE + "embedded_id"; //$NON-NLS-1$
- public static final String ICON_VERSION = PRE + "version"; //$NON-NLS-1$
- public static final String ICON_TRANSIENT = PRE + "transient"; //$NON-NLS-1$
- public static final String ICON_EMBEDDED = PRE + "embedded"; //$NON-NLS-1$
- public static final String ICON_UNMAPPED = PRE + "unmapped"; //$NON-NLS-1$
-
-
- public static final String ICON_ONE_TO_ONE_1_DIR = PRE + "one_to_one_1_dir_relation"; //$NON-NLS-1$
- public static final String ICON_ONE_TO_MANY_1_DIR = PRE + "one_to_many_1_dir_relation"; //$NON-NLS-1$
- public static final String ICON_MANY_TO_ONE_1_DIR = PRE + "many_to_one_1_dir_relation"; //$NON-NLS-1$
- public static final String ICON_MANY_TO_MANY_1_DIR = PRE + "many_to_many_1_dir_relation"; //$NON-NLS-1$
-
- public static final String ICON_ONE_TO_ONE_2_DIR = PRE + "one_to_one_2_dir_relation"; //$NON-NLS-1$
- public static final String ICON_MANY_TO_ONE_2_DIR = PRE + "many_to_one_2_dir_relation"; //$NON-NLS-1$
- public static final String ICON_MANY_TO_MANY_2_DIR = PRE + "many_to_many_2_dir_relation"; //$NON-NLS-1$
-
-
- public static final String ICON_SAVE = PRE + "save"; //$NON-NLS-1$
- public static final String ICON_RESTORE = PRE + "restore"; //$NON-NLS-1$
- public static final String ICON_SAVE_AND_REMOVE = PRE + "save_and_remove"; //$NON-NLS-1$
-
- private static final String ROOT_FOLDER_FOR_IMG = "icons/"; //$NON-NLS-1$
-
- public JPAEditorImageProvider() {
- super();
- }
-
- @Override
- protected void addAvailableImages() {
- addImageFilePath(ICON_BASIC, ROOT_FOLDER_FOR_IMG + "ent/basic.gif"); //$NON-NLS-1$
- addImageFilePath(JPA_ENTITY, ROOT_FOLDER_FOR_IMG + "ent/entity.gif"); //$NON-NLS-1$
- addImageFilePath(ADD_JPA_ENTITY, ROOT_FOLDER_FOR_IMG + "ent/add_entity.gif"); //$NON-NLS-1$
- addImageFilePath(ADD_INHERITED_ENTITY, ROOT_FOLDER_FOR_IMG + "ent/mapped-superclass.gif"); //$NON-NLS-1$
- addImageFilePath(PRIMARY_KEY, ROOT_FOLDER_FOR_IMG + "ent/id.gif"); //$NON-NLS-1$
- addImageFilePath(ADD_ATTRIBUTE, ROOT_FOLDER_FOR_IMG + "ent/add_attribute.gif"); //$NON-NLS-1$
- addImageFilePath(REMOVE_ATTRIBUTE, ROOT_FOLDER_FOR_IMG + "ent/remove_attribute.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_ONE_TO_ONE, ROOT_FOLDER_FOR_IMG + "ent/one-to-one.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_ONE_TO_MANY, ROOT_FOLDER_FOR_IMG + "ent/one-to-many.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_MANY_TO_ONE, ROOT_FOLDER_FOR_IMG + "ent/many-to-one.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_MANY_TO_MANY, ROOT_FOLDER_FOR_IMG + "ent/many-to-many.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_EMBEDDED_ID, ROOT_FOLDER_FOR_IMG + "ent/embedded-id.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_VERSION, ROOT_FOLDER_FOR_IMG + "ent/version.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_TRANSIENT, ROOT_FOLDER_FOR_IMG + "ent/transient.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_EMBEDDED, ROOT_FOLDER_FOR_IMG + "ent/embedded.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_UNMAPPED, ROOT_FOLDER_FOR_IMG + "ent/null-attribute-mapping.gif"); //$NON-NLS-1$
-
- addImageFilePath(ICON_ONE_TO_ONE_1_DIR, ROOT_FOLDER_FOR_IMG + "ent/one-to-one-1-dir.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_ONE_TO_MANY_1_DIR, ROOT_FOLDER_FOR_IMG + "ent/one-to-many-1-dir.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_MANY_TO_ONE_1_DIR, ROOT_FOLDER_FOR_IMG + "ent/many-to-one-1-dir.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_MANY_TO_MANY_1_DIR, ROOT_FOLDER_FOR_IMG + "ent/many-to-many-1-dir.gif"); //$NON-NLS-1$
-
- addImageFilePath(ICON_ONE_TO_ONE_2_DIR, ROOT_FOLDER_FOR_IMG + "ent/one-to-one-2-dir.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_MANY_TO_ONE_2_DIR, ROOT_FOLDER_FOR_IMG + "ent/many-to-one-2-dir.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_MANY_TO_MANY_2_DIR, ROOT_FOLDER_FOR_IMG + "ent/many-to-many-2-dir.gif"); //$NON-NLS-1$
-
- addImageFilePath(ICON_SAVE, ROOT_FOLDER_FOR_IMG + "save.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_RESTORE, ROOT_FOLDER_FOR_IMG + "restore.gif"); //$NON-NLS-1$
- addImageFilePath(ICON_SAVE_AND_REMOVE, ROOT_FOLDER_FOR_IMG + "save_and_remove.gif"); //$NON-NLS-1$
- }
-
-}
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorToolBehaviorProvider.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorToolBehaviorProvider.java
deleted file mode 100644
index d70eed4756..0000000000
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/provider/JPAEditorToolBehaviorProvider.java
+++ /dev/null
@@ -1,619 +0,0 @@
-/*******************************************************************************
- * <copyright>
- *
- * Copyright (c) 2005, 2010 SAP AG.
- * 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:
- * Stefan Dimov - initial API, implementation and documentation
- *
- * </copyright>
- *
- *******************************************************************************/
-package org.eclipse.jpt.jpadiagrameditor.ui.internal.provider;
-
-import java.text.MessageFormat;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.QualifiedName;
-import org.eclipse.graphiti.dt.IDiagramTypeProvider;
-import org.eclipse.graphiti.features.IFeatureProvider;
-import org.eclipse.graphiti.features.context.ICustomContext;
-import org.eclipse.graphiti.features.context.IDoubleClickContext;
-import org.eclipse.graphiti.features.context.IPictogramElementContext;
-import org.eclipse.graphiti.features.context.impl.CreateContext;
-import org.eclipse.graphiti.features.context.impl.CustomContext;
-import org.eclipse.graphiti.features.context.impl.DeleteContext;
-import org.eclipse.graphiti.features.context.impl.RemoveContext;
-import org.eclipse.graphiti.features.custom.ICustomFeature;
-import org.eclipse.graphiti.internal.features.context.impl.base.PictogramElementContext;
-import org.eclipse.graphiti.mm.algorithms.GraphicsAlgorithm;
-import org.eclipse.graphiti.mm.algorithms.Rectangle;
-import org.eclipse.graphiti.mm.algorithms.Text;
-import org.eclipse.graphiti.mm.algorithms.styles.Font;
-import org.eclipse.graphiti.mm.pictograms.ContainerShape;
-import org.eclipse.graphiti.mm.pictograms.Diagram;
-import org.eclipse.graphiti.mm.pictograms.PictogramElement;
-import org.eclipse.graphiti.mm.pictograms.Shape;
-import org.eclipse.graphiti.palette.IPaletteCompartmentEntry;
-import org.eclipse.graphiti.palette.IToolEntry;
-import org.eclipse.graphiti.palette.impl.PaletteCompartmentEntry;
-import org.eclipse.graphiti.platform.IPlatformImageConstants;
-import org.eclipse.graphiti.services.Graphiti;
-import org.eclipse.graphiti.tb.ContextButtonEntry;
-import org.eclipse.graphiti.tb.ContextEntryHelper;
-import org.eclipse.graphiti.tb.ContextMenuEntry;
-import org.eclipse.graphiti.tb.DefaultToolBehaviorProvider;
-import org.eclipse.graphiti.tb.IContextButtonEntry;
-import org.eclipse.graphiti.tb.IContextButtonPadData;
-import org.eclipse.graphiti.tb.IContextMenuEntry;
-import org.eclipse.graphiti.tb.IDecorator;
-import org.eclipse.graphiti.tb.ImageDecorator;
-import org.eclipse.jpt.jpa.core.context.java.JavaPersistentAttribute;
-import org.eclipse.jpt.jpa.core.context.java.JavaPersistentType;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.JPADiagramEditorPlugin;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.facade.EclipseFacade;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.AddAllEntitiesFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.ClickAddAttributeButtonFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.ClickRemoveAttributeButtonFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CollapseAllEntitiesFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CollapseCompartmentShapeFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.CollapseEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.DeleteJPAEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.DiscardAndRemoveAllEntitiesFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.ExpandAllEntitiesFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.ExpandCompartmentShapeFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.ExpandEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.MoveEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.OpenJPADetailsViewFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.OpenMiniatureViewFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.RefactorAttributeTypeFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.RemoveAndSaveEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.RemoveJPAEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.RenameEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.RestoreEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.SaveAndRemoveAllEntitiesFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.feature.SaveEntityFeature;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.i18n.JPAEditorMessages;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.modelintegration.ui.JPAEditorMatchingStrategy;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.GraphicsUpdater;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.IEclipseFacade;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPAEditorConstants;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPAEditorUtil;
-import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPAEditorConstants.ShapeType;
-import org.eclipse.ui.PartInitException;
-
-@SuppressWarnings("restriction")
-public class JPAEditorToolBehaviorProvider extends DefaultToolBehaviorProvider {
-
- private IEclipseFacade facade;
-
- public JPAEditorToolBehaviorProvider(IDiagramTypeProvider dtp) {
- this(dtp, EclipseFacade.INSTANCE);
- }
-
- public JPAEditorToolBehaviorProvider(IDiagramTypeProvider dtp, IEclipseFacade eclipseFacade) {
- super(dtp);
- this.facade = eclipseFacade;
- }
-
- @Override
- public IContextButtonPadData getContextButtonPad(IPictogramElementContext context) {
- IContextButtonPadData data = super.getContextButtonPad(context);
- ContainerShape cs = null;
- PictogramElement pe = ((PictogramElementContext) context).getPictogramElement();
- Object ob = getFeatureProvider().getBusinessObjectForPictogramElement(pe);
- if (ob == null){
- return null;
- }
- if (pe instanceof ContainerShape) {
- cs = (ContainerShape)pe;
- GraphicsAlgorithm ga = cs.getGraphicsAlgorithm();
- if (ga instanceof Rectangle) {
- List<GraphicsAlgorithm> gas = ((Rectangle)ga).getGraphicsAlgorithmChildren();
- if ((gas.size() > 0) && (gas.get(0) instanceof Text)) {
- setGenericContextButtons(data, pe, 0);
- ClickRemoveAttributeButtonFeature feat = getConcreteFeatureProvider()
- .getClickRemoveAttributeButtonFeature();
- DeleteContext delCtx = new DeleteContext(cs);
- ContextButtonEntry btn = new ContextButtonEntry(feat, delCtx);
- btn.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_deleteAttributeButtonlabel);
- btn.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_deleteAttributeButtonDescription);
- btn.setIconId(IPlatformImageConstants.IMG_EDIT_DELETE);
- data.getDomainSpecificContextButtons().add(btn);
- return data;
- }
- }
- } else {
- return data;
- }
-
- setGenericContextButtons(data, pe, CONTEXT_BUTTON_DELETE
- | CONTEXT_BUTTON_REMOVE);
- List<IContextButtonEntry> buttons = data.getGenericContextButtons();
- Iterator<IContextButtonEntry> btnsIt = buttons.iterator();
- while (btnsIt.hasNext()) {
- IContextButtonEntry button = btnsIt.next();
- if (button.getFeature() instanceof RemoveJPAEntityFeature) {
- button.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_removeEntityFromDiagramButtonLabel);
- button.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_removeEntityFromDiagramButtonDescription);
- } else if (button.getFeature() instanceof DeleteJPAEntityFeature) {
- button.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_deleteEntityFromModelButtonLabel);
- button.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_deleteEntityFromModelButtonDescription);
- }
- }
-
- ContextButtonEntry button = null;
- if (context instanceof PictogramElementContext) {
-
- ClickAddAttributeButtonFeature feature = getConcreteFeatureProvider().getClickAddAttributeButtonFeature();
- CreateContext createCtx = new CreateContext();
- createCtx.setTargetContainer(cs);
- button = new ContextButtonEntry(feature, createCtx);
- button.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_createAttributeButtonlabel);
- button.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_createAttributeButtonDescription);
- button.setIconId(JPAEditorImageProvider.ADD_ATTRIBUTE);
- data.getDomainSpecificContextButtons().add(button);
-
- PictogramElementContext c = (PictogramElementContext) context;
- RemoveAndSaveEntityFeature ft2 = new RemoveAndSaveEntityFeature(getFeatureProvider());
- RemoveContext remCtx = new RemoveContext(c.getPictogramElement());
- button = new ContextButtonEntry(ft2, remCtx);
- button.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_removeAndSaveButtonText);
- button.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_removeAndSaveButtonDescription);
- button.setIconId(JPAEditorImageProvider.ICON_SAVE_AND_REMOVE);
- data.getDomainSpecificContextButtons().add(button);
-
- SaveEntityFeature ft = new SaveEntityFeature(getConcreteFeatureProvider());
- CustomContext ctx = new CustomContext();
- ctx.setPictogramElements(new PictogramElement[] { c.getPictogramElement() });
- button = new ContextButtonEntry(ft, ctx);
- button.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_saveButtonText);
- button.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_saveButtonDescription);
- button.setIconId(JPAEditorImageProvider.ICON_SAVE);
- data.getDomainSpecificContextButtons().add(button);
-
- RestoreEntityFeature ft1 = new RestoreEntityFeature(getConcreteFeatureProvider());
- ctx = new CustomContext();
- ctx.setPictogramElements(new PictogramElement[] { c.getPictogramElement() });
- button = new ContextButtonEntry(ft1, ctx);
- button.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_restoreButtonText);
- button.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_restoreButtonDescription);
- button.setIconId(JPAEditorImageProvider.ICON_RESTORE);
- data.getDomainSpecificContextButtons().add(button);
-
- ctx = new CustomContext(new PictogramElement[] { pe });
- IFeatureProvider featureProvider = getFeatureProvider();
- ICustomFeature[] customFeatures = featureProvider.getCustomFeatures(ctx);
- int featureCount = customFeatures.length;
- for (int i = 0; i < featureCount; i++) {
- ICustomFeature customFeature = customFeatures[i];
- if (customFeature.isAvailable(ctx)) {
- if ((customFeature instanceof CollapseEntityFeature)) {
- IContextButtonEntry contextButton = ContextEntryHelper
- .createCollapseContextButton(true, customFeature, ctx);
- data.setCollapseContextButton(contextButton);
- } else if ((customFeature instanceof ExpandEntityFeature)) {
- IContextButtonEntry contextButton = ContextEntryHelper
- .createCollapseContextButton(false, customFeature, ctx);
- data.setCollapseContextButton(contextButton);
- }
- }
- }
- }
-
- return data;
- }
-
-
- @Override
- public IPaletteCompartmentEntry[] getPalette() {
- List<IPaletteCompartmentEntry> ret =
- new ArrayList<IPaletteCompartmentEntry>();
- IPaletteCompartmentEntry[] superCompartments =
- super.getPalette();
- for (int i = 0; i < superCompartments.length; i++) {
- String newLabel = (superCompartments[i].getLabel().equals("Objects") ? //$NON-NLS-1$
- JPAEditorMessages.PaletteCompartment_Objects :
- JPAEditorMessages.PaletteCompartment_Connections);
- PaletteCompartmentEntry entry = new PaletteCompartmentEntry(newLabel, superCompartments[i].getIconId());
- List<IToolEntry> lst = superCompartments[i].getToolEntries();
- Iterator<IToolEntry> it = lst.iterator();
- while(it.hasNext()) {
- entry.addToolEntry(it.next());
- }
- ret.add(entry);
- }
- IPaletteCompartmentEntry en = ret.get(0);
- ret.set(0, ret.get(1));
- ret.set(1, en);
- return ret.toArray(new IPaletteCompartmentEntry[ret.size()]);
- }
-
- @Override
- public IDecorator[] getDecorators(PictogramElement pe) {
- IFeatureProvider featureProvider = getFeatureProvider();
- Object bo = featureProvider.getBusinessObjectForPictogramElement(pe);
-
- if (bo instanceof JavaPersistentType) {
- JavaPersistentType persistentType = (JavaPersistentType) bo;
- IFile file = (IFile) persistentType.getResource();
- if(!file.exists()){
- return new IDecorator[0];
- }
- IMarker[] markers = new IMarker[0];
- try {
- markers = file.findMarkers(null, true, IResource.DEPTH_INFINITE);
- IDecorator[] result = new IDecorator[1];
- if (markers.length == 0)
- return super.getDecorators(pe);
- IMarker marker = getHighestPrioMarker(markers);
- ImageDecorator imageRenderingDecorator = createDecoratorFromMarker(marker);
- if (imageRenderingDecorator != null) {
- imageRenderingDecorator.setX(5 * (pe.getGraphicsAlgorithm().getWidth() / 6));
- imageRenderingDecorator.setY(5 * (pe.getGraphicsAlgorithm().getHeight() / 6));
- result[0] = imageRenderingDecorator;
- }
- if (result[0] != null)
- return result;
- } catch (CoreException e) {
- JPADiagramEditorPlugin.getDefault().getLog().log(e.getStatus());
- }
- }
- return super.getDecorators(pe);
- }
-
- private IMarker getHighestPrioMarker(IMarker[] markers) {
- IMarker result = markers[0];
- for (IMarker marker : markers) {
- try {
- final Integer resultSeverity = (Integer) result.getAttribute(IMarker.SEVERITY);
- if (resultSeverity == null)
- continue;
- if (IMarker.SEVERITY_ERROR == resultSeverity)
- // return the first error marker
- break;
- Integer markerSeverity = (Integer) marker.getAttribute(IMarker.SEVERITY);
- if ((markerSeverity != null) && (markerSeverity > resultSeverity))
- result = marker;
- } catch (CoreException e) {
- JPADiagramEditorPlugin.getDefault().getLog().log(e.getStatus());
- continue;
- }
- }
- return result;
- }
-
- private ImageDecorator createDecoratorFromMarker(IMarker marker) {
- try {
- Integer severity = (Integer) marker.getAttribute(IMarker.SEVERITY);
- String decoratorType = IPlatformImageConstants.IMG_ECLIPSE_INFORMATION_TSK;
- if (severity != null) {
- switch (severity) {
- case 0:
- decoratorType = IPlatformImageConstants.IMG_ECLIPSE_INFORMATION_TSK;
- case 1:
- decoratorType = IPlatformImageConstants.IMG_ECLIPSE_WARNING_TSK;
- break;
- case 2:
- decoratorType = IPlatformImageConstants.IMG_ECLIPSE_ERROR_TSK;
- break;
- }
- ImageDecorator imageRenderingDecorator = new ImageDecorator(decoratorType);
- imageRenderingDecorator.setMessage((String) marker.getAttribute(IMarker.MESSAGE));
- return imageRenderingDecorator;
- }
- return null;
- } catch (CoreException e) {
- JPADiagramEditorPlugin.getDefault().getLog().log(e.getStatus());
- return null;
- }
- }
-
- public String getToolTip(GraphicsAlgorithm ga) {
- PictogramElement pe = ga.getPictogramElement();
- if (!(ga instanceof Rectangle))
- return null;
- List<GraphicsAlgorithm> ch = ga.getGraphicsAlgorithmChildren();
- if ((ch == null) || (ch.size() == 0))
- return null;
- ga = ch.get(0);
- if (!(ga instanceof Text))
- return null;
- Font f = ((Text)ga).getFont();
- if (f == null)
- return ""; //$NON-NLS-1$
- if(f.isItalic()){
- return getToolTipForCompartmentShape(ga);
- }
-
- Object bo = getFeatureProvider().getBusinessObjectForPictogramElement(pe);
- if (bo != null) {
- if (bo instanceof JavaPersistentType) {
- String superPersistentTypeName = null;
- if (((JavaPersistentType) bo).getSuperPersistentType() != null) {
- superPersistentTypeName = ((JavaPersistentType) bo).getSuperPersistentType().getName();
- }
- return JPAEditorUtil.getTooltipText((JavaPersistentType)bo, superPersistentTypeName);
- } else {
- if (bo instanceof JavaPersistentAttribute) {
- return JPAEditorUtil.getTooltipText((JavaPersistentAttribute)bo);
- }
- }
- }
- if (!(pe instanceof Shape))
- return null;
- Shape sh = (Shape)pe;
- ContainerShape csh = sh.getContainer();
- if (csh == null)
- return null;
- bo = getFeatureProvider().getBusinessObjectForPictogramElement(csh);
- if (bo instanceof JavaPersistentType) {
- String superPersistentTypeName = null;
- if (((JavaPersistentType) bo).getSuperPersistentType() != null) {
- superPersistentTypeName = ((JavaPersistentType) bo)
- .getSuperPersistentType().getName();
- }
- return JPAEditorUtil.getTooltipText((JavaPersistentType) bo,
- superPersistentTypeName);
- }
- return null;
- }
-
- private String getToolTipForCompartmentShape(GraphicsAlgorithm ga) {
- Text txt = (Text) ga;
- ContainerShape shape = (ContainerShape) Graphiti.getPeService().getActiveContainerPe(ga);
- if(GraphicsUpdater.isCollapsed(shape))
- return MessageFormat.format(JPAEditorMessages.JPAEditorToolBehaviorProvider_expandCompartToolTip, txt.getValue());
- return MessageFormat.format(JPAEditorMessages.JPAEditorToolBehaviorProvider_collapseCompartToolTip, txt.getValue());
- }
-
- protected JPAEditorFeatureProvider getConcreteFeatureProvider() {
- return (JPAEditorFeatureProvider)super.getFeatureProvider();
- }
-
- @Override
- public IContextMenuEntry[] getContextMenu(ICustomContext context) {
- ICustomContext customContext = (ICustomContext)context;
- PictogramElement[] pictEls = customContext.getPictogramElements();
-
- ICustomFeature saveEntityFeature = new SaveEntityFeature(getFeatureProvider());
- ContextMenuEntry saveEntityMenuItem = new ContextMenuEntry(saveEntityFeature, context);
- saveEntityMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_saveMenuItem);
- saveEntityMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_saveMenuItemDescr);
- saveEntityMenuItem.setSubmenu(false);
-
- ICustomFeature restoreEntityFeature = new RestoreEntityFeature(getFeatureProvider());
- ContextMenuEntry restoreEntityMenuItem = new ContextMenuEntry(restoreEntityFeature, context);
- restoreEntityMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_discardChangesMenuItem);
- restoreEntityMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_discardChangesMenuItemDescr);
- restoreEntityMenuItem.setSubmenu(false);
-
- ICustomFeature collapseFeature = new CollapseEntityFeature(getFeatureProvider());
- ContextMenuEntry collapseEntityMenuItem = new ContextMenuEntry(collapseFeature, context);
- collapseEntityMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_collapseEntityMenuItem);
- collapseEntityMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_collapseEntityMenuItemDescr);
- collapseEntityMenuItem.setSubmenu(false);
-
- ICustomFeature collapseAllFeature = new CollapseAllEntitiesFeature(getFeatureProvider());
- ContextMenuEntry collapseAllMenuItem = new ContextMenuEntry(collapseAllFeature, context);
- collapseAllMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_collapseAllEntitiesMenuItem);
- collapseAllMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_collapseAllEntitiesMenuItemDescr);
- collapseAllMenuItem.setSubmenu(false);
-
- ICustomFeature expandFeature = new ExpandEntityFeature(getFeatureProvider());
- ContextMenuEntry expandEntityMenuItem= new ContextMenuEntry(expandFeature, context);
- expandEntityMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_expandEntityMenuItem);
- expandEntityMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_expandEntitymenuItemDescr);
- expandEntityMenuItem.setSubmenu(false);
-
- ICustomFeature expandAllFeature = new ExpandAllEntitiesFeature(getFeatureProvider());
- ContextMenuEntry expandAllMenuItem= new ContextMenuEntry(expandAllFeature, context);
- expandAllMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_expandAllEntitiesMenuItem);
- expandAllMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_expandAllEntitiesMenuItemDescr);
- expandAllMenuItem.setSubmenu(false);
-
- ICustomFeature openJPADetailsViewFeature = new OpenJPADetailsViewFeature(getFeatureProvider());
- ContextMenuEntry openJPADetailsViewMenuItem = new ContextMenuEntry(openJPADetailsViewFeature, context);
- openJPADetailsViewMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_openJPADetailsView);
- openJPADetailsViewMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_openJPADetailsViewDesc);
- openJPADetailsViewMenuItem.setSubmenu(false);
-
- ICustomFeature openMiniatureViewFeature = new OpenMiniatureViewFeature(getFeatureProvider());
- ContextMenuEntry openMiniatureViewMenuItem = new ContextMenuEntry(openMiniatureViewFeature, context);
- openMiniatureViewMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_openMiniatureView);
- openMiniatureViewMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_openMiniatureViewDesc);
- openMiniatureViewMenuItem.setSubmenu(false);
-
- boolean isEmpty = true;
- ContextMenuEntry removeAllEntitiesSubmenu = null;
- if(getDiagramTypeProvider().getDiagram().getChildren().size()!=0){
- isEmpty = false;
- removeAllEntitiesSubmenu = new ContextMenuEntry(null, null);
- removeAllEntitiesSubmenu.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_removeAllEntitiesMenu);
- removeAllEntitiesSubmenu.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_removeAllEntitiesMenu);
- removeAllEntitiesSubmenu.setSubmenu(true);
-
- ICustomFeature customFeature = new SaveAndRemoveAllEntitiesFeature(getFeatureProvider());
- ContextMenuEntry saveAndRemovEntityMenuItem = new ContextMenuEntry(customFeature, context);
- saveAndRemovEntityMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_removeAndSaveAllEntitiesAction);
- saveAndRemovEntityMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_removeAndSaveAllEntitiesAction);
- saveAndRemovEntityMenuItem.setSubmenu(false);
-
- customFeature = new DiscardAndRemoveAllEntitiesFeature(getFeatureProvider());
- ContextMenuEntry discardAndRemovEntityMenuItem = new ContextMenuEntry(customFeature, context);
- discardAndRemovEntityMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_removeAndDiscardAllEntitiesAction);
- discardAndRemovEntityMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_removeAndDiscardAllEntitiesAction);
- discardAndRemovEntityMenuItem.setSubmenu(false);
-
- removeAllEntitiesSubmenu.add(saveAndRemovEntityMenuItem);
- removeAllEntitiesSubmenu.add(discardAndRemovEntityMenuItem);
-
- }
-
-
- if ((pictEls == null) || (pictEls.length == 0))
- return new IContextMenuEntry[] { openJPADetailsViewMenuItem };
- if (pictEls[0] instanceof ContainerShape) {
- Object ob = getFeatureProvider().getBusinessObjectForPictogramElement(pictEls[0]);
- if (pictEls[0] instanceof Diagram) {
- ICustomFeature customFeature = new AddAllEntitiesFeature(getFeatureProvider());
- ContextMenuEntry showAllEntsMenuItem = new ContextMenuEntry(customFeature, context);
- showAllEntsMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_showAllTheEntities);
- showAllEntsMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_showAllTheEntitiesDesc);
- showAllEntsMenuItem.setSubmenu(false);
- if(isEmpty){
- return new IContextMenuEntry[] { showAllEntsMenuItem,
- collapseAllMenuItem,
- expandAllMenuItem,
- openJPADetailsViewMenuItem,
- openMiniatureViewMenuItem};
- } else {
- return new IContextMenuEntry[] { showAllEntsMenuItem,
- removeAllEntitiesSubmenu,
- collapseAllMenuItem,
- expandAllMenuItem,
- openJPADetailsViewMenuItem,
- openMiniatureViewMenuItem};
- }
- }
- if((ob == null) && (pictEls[0].getGraphicsAlgorithm() instanceof Rectangle)){
- ICustomFeature collapseCompartmentFeature = new CollapseCompartmentShapeFeature(getFeatureProvider());
- ContextMenuEntry collapseCompartmentMenuItem = new ContextMenuEntry(collapseCompartmentFeature, context);
- collapseCompartmentMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_collapseAttrGroupMenuItem);
- collapseCompartmentMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_collapseAttrGroupMenuItemDescr);
- collapseCompartmentMenuItem.setSubmenu(false);
-
- ICustomFeature expandCompartmentFeature = new ExpandCompartmentShapeFeature(getFeatureProvider());
- ContextMenuEntry expandCompartmentMenuItem= new ContextMenuEntry(expandCompartmentFeature, context);
- expandCompartmentMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_expandAttrMenuItem);
- expandCompartmentMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_expandAttrMenuItemDescr);
- expandCompartmentMenuItem.setSubmenu(false);
- return new IContextMenuEntry[] {collapseCompartmentMenuItem, expandCompartmentMenuItem};
- }
-
- /*
- //Apply Pattern menu
-
- ICustomFeature applyPatternFeature = new ApplyPatternFeature(getFeatureProvider());
- ContextMenuEntry applyPatternMenuItem = new ContextMenuEntry(applyPatternFeature, context);
- applyPatternMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_applyPattern);
- applyPatternMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_applyPatternDesc);
- applyPatternMenuItem.setSubmenu(false);
- //Apply Pattern menu
- */
-
- ContextMenuEntry refactorClassSubmenu = new ContextMenuEntry(null, null);
- refactorClassSubmenu.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_refactorSubMenu);
- refactorClassSubmenu.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_refactorSubMenu);
- refactorClassSubmenu.setSubmenu(true);
-
-
- ICustomFeature customFeature = new RenameEntityFeature(getFeatureProvider());
- ContextMenuEntry renameEntityMenuItem = new ContextMenuEntry(customFeature, context);
- renameEntityMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_renameEntityClass);
- renameEntityMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_renameEntityClass);
- renameEntityMenuItem.setSubmenu(false);
-
- customFeature = new MoveEntityFeature(getFeatureProvider());
- ContextMenuEntry moveEntityMenuItem = new ContextMenuEntry(customFeature, context);
- moveEntityMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_moveEntityClass);
- moveEntityMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_moveEntityClass);
- moveEntityMenuItem.setSubmenu(false);
-
- refactorClassSubmenu.add(renameEntityMenuItem);
- refactorClassSubmenu.add(moveEntityMenuItem);
-
- String shapeType = Graphiti.getPeService().getPropertyValue(pictEls[0], JPAEditorConstants.PROP_SHAPE_TYPE);
-
- if ((shapeType == null) || !shapeType.equals(ShapeType.ATTRIBUTE.toString()))
- return new IContextMenuEntry[] { saveEntityMenuItem,
- refactorClassSubmenu,
- collapseEntityMenuItem,
- collapseAllMenuItem,
- expandEntityMenuItem,
- expandAllMenuItem,
- restoreEntityMenuItem,
- //applyPatternMenuItem,
- removeAllEntitiesSubmenu,
- openJPADetailsViewMenuItem,
- openMiniatureViewMenuItem};
-
- customFeature = new RefactorAttributeTypeFeature(getFeatureProvider());
- ContextMenuEntry refactorAttributeTypeMenuItem = new ContextMenuEntry(customFeature, context);
- refactorAttributeTypeMenuItem.setText(JPAEditorMessages.JPAEditorToolBehaviorProvider_refactorAttributeType);
- refactorAttributeTypeMenuItem.setDescription(JPAEditorMessages.JPAEditorToolBehaviorProvider_refactorAttributeTypeDesc);
- refactorAttributeTypeMenuItem.setSubmenu(false);
-
- return new IContextMenuEntry[] { refactorClassSubmenu,
- refactorAttributeTypeMenuItem,
- collapseAllMenuItem,
- expandAllMenuItem,
- //applyPatternMenuItem,
- openJPADetailsViewMenuItem,
- openMiniatureViewMenuItem};
- }
- return new IContextMenuEntry[] { removeAllEntitiesSubmenu,
- collapseAllMenuItem,
- expandAllMenuItem,
- openJPADetailsViewMenuItem,
- openMiniatureViewMenuItem};
- }
-
- @Override
- public ICustomFeature getDoubleClickFeature(IDoubleClickContext context) {
- PictogramElement pe = context.getPictogramElements()[0];
- Object bo = getFeatureProvider().getBusinessObjectForPictogramElement(
- pe);
- if (bo instanceof JavaPersistentAttribute) {
- JavaPersistentAttribute jpa = (JavaPersistentAttribute) bo;
- IFile file = (IFile) jpa.getResource();
- try {
- file.setSessionProperty(new QualifiedName(null, JPAEditorMatchingStrategy.DOUBLE_CLICK), "true"); //$NON-NLS-1$
- facade.getIDE().openEditor(file);
- } catch (PartInitException e) {
- JPADiagramEditorPlugin.logError("Cannot open editor", e); //$NON-NLS-1$
- } catch (CoreException e) {
- JPADiagramEditorPlugin.logError("Cannot open editor", e); //$NON-NLS-1$
- }
- }
- if (bo instanceof JavaPersistentType) {
- JavaPersistentType jpt = (JavaPersistentType) bo;
- IFile file = (IFile) jpt.getResource();
- try {
- file.setSessionProperty(new QualifiedName(null, JPAEditorMatchingStrategy.DOUBLE_CLICK), "true"); //$NON-NLS-1$
- facade.getIDE().openEditor(file);
- } catch (PartInitException e) {
- JPADiagramEditorPlugin.logError("Cannot open editor", e); //$NON-NLS-1$
- } catch (CoreException e) {
- JPADiagramEditorPlugin.logError("Cannot open editor", e); //$NON-NLS-1$
- }
- }
- if ((bo == null) && (pe.getGraphicsAlgorithm() instanceof Rectangle)) {
- ICustomContext cont = new CustomContext(
- new PictogramElement[] { pe });
- ContainerShape containerShape = (ContainerShape) pe;
- if (GraphicsUpdater.isCollapsed(containerShape)) {
- ExpandCompartmentShapeFeature feature = new ExpandCompartmentShapeFeature(
- getFeatureProvider());
- feature.execute(cont);
- } else {
- CollapseCompartmentShapeFeature feature = new CollapseCompartmentShapeFeature(
- getFeatureProvider());
- feature.execute(cont);
- }
-
- }
- return super.getDoubleClickFeature(context);
- }
-
-}

Back to the top