Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpsabeva2012-07-05 15:16:57 +0000
committerpsabeva2012-07-05 15:16:57 +0000
commit2470465030f5a39a8c2bf1015389e00034cee3ed (patch)
tree16d0582ce96f7a2e253fc3bfbd1898523ebe58cc
parent26dbfcddbcbcfcbe10d5a3236498b8810713bcf6 (diff)
downloadwebtools.dali-2470465030f5a39a8c2bf1015389e00034cee3ed.tar.gz
webtools.dali-2470465030f5a39a8c2bf1015389e00034cee3ed.tar.xz
webtools.dali-2470465030f5a39a8c2bf1015389e00034cee3ed.zip
[383648] - JPA Details view does not show the proper information
-rw-r--r--jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/JPADiagramEditor.java98
-rw-r--r--jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/propertypage/JPADiagramPropertyPage.java279
2 files changed, 229 insertions, 148 deletions
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/JPADiagramEditor.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/JPADiagramEditor.java
index 9472327c2c..9e1cde6123 100644
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/JPADiagramEditor.java
+++ b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/JPADiagramEditor.java
@@ -20,6 +20,7 @@ import java.util.Iterator;
import java.util.List;
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
@@ -29,7 +30,6 @@ import org.eclipse.emf.transaction.RecordingCommand;
import org.eclipse.emf.transaction.TransactionalEditingDomain;
import org.eclipse.emf.transaction.util.TransactionUtil;
import org.eclipse.gef.ContextMenuProvider;
-import org.eclipse.gef.DefaultEditDomain;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.graphiti.features.IFeatureProvider;
@@ -47,9 +47,20 @@ import org.eclipse.jface.operation.IRunnableWithProgress;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jpt.common.core.internal.utility.PlatformTools;
+import org.eclipse.jpt.common.utility.internal.AbstractTransformer;
+import org.eclipse.jpt.common.utility.internal.Transformer;
+import org.eclipse.jpt.common.utility.internal.model.value.DoublePropertyValueModel;
+import org.eclipse.jpt.common.utility.internal.model.value.SimplePropertyValueModel;
+import org.eclipse.jpt.common.utility.internal.model.value.TransformationPropertyValueModel;
+import org.eclipse.jpt.common.utility.model.value.ModifiablePropertyValueModel;
+import org.eclipse.jpt.common.utility.model.value.PropertyValueModel;
+import org.eclipse.jpt.jpa.core.JpaFile;
import org.eclipse.jpt.jpa.core.JpaStructureNode;
+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.jpa.ui.JpaFileModel;
+import org.eclipse.jpt.jpa.ui.selection.JpaEditorManager;
import org.eclipse.jpt.jpa.ui.selection.JpaSelectionManager;
import org.eclipse.jpt.jpadiagrameditor.ui.internal.i18n.JPAEditorMessages;
import org.eclipse.jpt.jpadiagrameditor.ui.internal.modelintegration.ui.JPADiagramEditorInput;
@@ -66,6 +77,7 @@ import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JpaArtifactFactory;
import org.eclipse.jpt.jpadiagrameditor.ui.internal.util.Wrp;
import org.eclipse.osgi.util.NLS;
import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.IEditorSite;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.ui.IWorkbenchPart;
@@ -75,23 +87,33 @@ import org.eclipse.ui.views.properties.IPropertySheetPage;
@SuppressWarnings("restriction")
-public class JPADiagramEditor extends DiagramEditor {
-
+public class JPADiagramEditor extends DiagramEditor implements JpaEditorManager{
+
+ private final ModifiablePropertyValueModel<JpaStructureNode> jpaSelectionModel = new SimplePropertyValueModel<JpaStructureNode>();
+
public final static String ID = "org.eclipse.jpt.jpadiagrameditor.ui"; //$NON-NLS-1$
- private DefaultEditDomain editDomain;
private JavaPersistentType inputJptType;
private ISelectionManagerFactory jpaSelectionManagerFactory;
+
+ private final ModifiablePropertyValueModel<IFile> fileModel = new SimplePropertyValueModel<IFile>();
+
+ /**
+ * We use the JPA file to calculate the JPA selection.
+ * We update the JPA file model's file model whenever the text editor's
+ * file changes.
+ */
+ private final PropertyValueModel<JpaFile> jpaFileModel;
+
public JPADiagramEditor() {
this(new SelectionManagerFactoryImpl());
- editDomain = new DefaultEditDomain(this);
}
public JPADiagramEditor(ISelectionManagerFactory jpaSelectionManagerFactory) {
super();
this.jpaSelectionManagerFactory = jpaSelectionManagerFactory;
- editDomain = new DefaultEditDomain(this);
+ this.jpaFileModel = this.buildJpaFileModel();
}
@Override
@@ -287,9 +309,15 @@ public class JPADiagramEditor extends DiagramEditor {
Object bo = getFeatureProvider()
.getBusinessObjectForPictogramElement(
(PictogramElement) m);
- if ((bo == null) || (!(bo instanceof JpaStructureNode)))
+ if ((bo == null) || (!(bo instanceof JpaStructureNode))){
+ jpaSelectionModel.setValue(null);
+ setFileModel(null);
return;
- selectionManager.setSelection((JpaStructureNode) bo);
+ }
+ JpaStructureNode jpaStructureNode = (JpaStructureNode) bo;
+ jpaSelectionModel.setValue(jpaStructureNode);
+ setFileModel(jpaStructureNode);
+ selectionManager.setSelection(jpaStructureNode);
return;
}
}
@@ -312,10 +340,58 @@ public class JPADiagramEditor extends DiagramEditor {
}
}
+
+ public IEditorPart getEditor() {
+ return this.getEditor();
+ }
+
+ public ModifiablePropertyValueModel<JpaStructureNode> getJpaSelectionModel() {
+ return this.jpaSelectionModel;
+ }
- @Override
- public DefaultEditDomain getEditDomain() {
- return editDomain;
+ public PropertyValueModel<JpaFile> getJpaFileModel() {
+ return this.jpaFileModel;
+ }
+
+ private PropertyValueModel<JpaFile> buildJpaFileModel() {
+ return new DoublePropertyValueModel<JpaFile>(this.buildJpaFileModelModel());
+ }
+
+ private PropertyValueModel<PropertyValueModel<JpaFile>> buildJpaFileModelModel() {
+ return new TransformationPropertyValueModel<IFile, PropertyValueModel<JpaFile>>(this.fileModel, JPA_FILE_MODEL_TRANSFORMER);
+ }
+
+ private static final Transformer<IFile, PropertyValueModel<JpaFile>> JPA_FILE_MODEL_TRANSFORMER = new JpaFileModelTransformer();
+
+ /* CU private */ static class JpaFileModelTransformer
+ extends AbstractTransformer<IFile, PropertyValueModel<JpaFile>>
+ {
+ @Override
+ protected PropertyValueModel<JpaFile> transform_(IFile file) {
+ return (JpaFileModel) file.getAdapter(JpaFileModel.class);
+ }
+ }
+
+ private void setFileModel(JpaStructureNode node) {
+ this.fileModel.setValue(getSelectedEntityFile(node));
}
+ private IFile getSelectedEntityFile(JpaStructureNode node) {
+ IResource resource = null;
+ if (node != null) {
+ if (node.getType().isAssignableFrom(JavaPersistentType.class)) {
+ resource = ((JavaPersistentType) node).getResource();
+ } else if (node.getType().isAssignableFrom(JavaPersistentAttribute.class)) {
+ resource = ((JavaPersistentAttribute) node).getResource();
+ }
+
+ if (resource != null && resource.exists() && (resource instanceof IFile)) {
+ return (IFile) resource;
+ }
+ }
+
+ return null;
+ }
+
+
}
diff --git a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/propertypage/JPADiagramPropertyPage.java b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/propertypage/JPADiagramPropertyPage.java
index 56f0bee90a..0ab27283c9 100644
--- a/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/propertypage/JPADiagramPropertyPage.java
+++ b/jpa_diagram_editor/plugins/org.eclipse.jpt.jpadiagrameditor.ui/src/org/eclipse/jpt/jpadiagrameditor/ui/internal/propertypage/JPADiagramPropertyPage.java
@@ -54,13 +54,13 @@ import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.dialogs.PropertyPage;
public class JPADiagramPropertyPage extends PropertyPage {
-
+
public static final String PROJECT_SETTINGS_PATH = "/.settings/org.eclipse.jpt.jpadiagrameditor.ui"; //$NON-NLS-1$;
protected IProject project = null;
protected boolean isJPA10Project = false; //$NON-NLS-1$;
-
+
private Properties editorProps;
-
+
private Text txtDefaultFolderField;
private Text txtDefaultEntityPackageField;
private Text txtDefaultTableNamePrefix;
@@ -78,28 +78,28 @@ public class JPADiagramPropertyPage extends PropertyPage {
private boolean propsModified = false;
static private final String QUALIFIER = "org.eclipse.jpt.jpadiagrameditor.ui"; //$NON-NLS-1$
- static public final QualifiedName PROP_DEFAULT_DIAGRAM_FOLDER = new QualifiedName(QUALIFIER, "diagramFolder"); //$NON-NLS-1$;
+ static public final QualifiedName PROP_DEFAULT_DIAGRAM_FOLDER = new QualifiedName(QUALIFIER, "diagramFolder"); //$NON-NLS-1$;
static public final QualifiedName PROP_DEFAULT_PACKAGE = new QualifiedName(QUALIFIER, "defaultPackage"); //$NON-NLS-1$
static public final QualifiedName PROP_DEFAULT_TABLE_NAME_PREFIX = new QualifiedName(QUALIFIER, "defaultTableNamePrefix"); //$NON-NLS-1$;
static public final QualifiedName PROP_DIRECT_EDIT_AFFECTS_CLASS = new QualifiedName(QUALIFIER, "directEditAffectsClass"); //$NON-NLS-1$;
static public final QualifiedName PROP_ACCESS_TYPE = new QualifiedName(QUALIFIER, "accessType"); //$NON-NLS-1$;
static public final QualifiedName PROP_COLLECTION_TYPE = new QualifiedName(QUALIFIER, "collectionType"); //$NON-NLS-1$;
static public final QualifiedName PROP_ONE_TO_MANY_OLD_STYLE = new QualifiedName(QUALIFIER, "oneToManyOldStyle"); //$NON-NLS-1$;
-
+
public static final String COLLECTION_TYPE = "java.util.Collection"; //$NON-NLS-1$
public static final String LIST_TYPE = "java.util.List"; //$NON-NLS-1$
public static final String SET_TYPE = "java.util.Set"; //$NON-NLS-1$
public static final String MAP_TYPE = "java.util.Map"; //$NON-NLS-1$
-
+
private IPreferenceStore store = JPADiagramEditorPlugin.getDefault().getPreferenceStore();
@Override
protected Control createContents(Composite parent) {
final Composite composite = createCompositeContainer(parent);
project = (IProject)getElement().getAdapter(IProject.class);
- isJPA10Project = JPAEditorUtil.checkJPAFacetVersion(project, "1.0"); //$NON-NLS-1$;
+ isJPA10Project = JPAEditorUtil.checkJPAFacetVersion(project, "1.0"); //$NON-NLS-1$;
loadProperties();
createDefaultFolderControl(composite);
createDefaultPackageControl(composite);
@@ -111,10 +111,10 @@ public class JPADiagramPropertyPage extends PropertyPage {
createOneToManyOldStyleControl(composite);
Dialog.applyDialogFont(composite);
validatePage();
- return composite;
+ return composite;
}
-
- private Composite createCompositeContainer(Composite parent) {
+
+ private Composite createCompositeContainer(Composite parent) {
final Composite composite= new Composite(parent, SWT.NONE);
composite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
GridLayout gl = new GridLayout();
@@ -122,19 +122,19 @@ public class JPADiagramPropertyPage extends PropertyPage {
composite.setLayout(gl);
return composite;
}
-
+
private void createDefaultFolderControl(Composite composite) {
- Label lblDefaultFolder = new Label(composite, SWT.FILL);
+ Label lblDefaultFolder = new Label(composite, SWT.FILL);
lblDefaultFolder.setText(JPAEditorMessages.JPAEditorPreferencesPage_defaultFolderControlLabel);
lblDefaultFolder.setToolTipText(JPAEditorMessages.JPAEditorPreferencesPage_defaultFolderControlTooltip);
GridData gd = new GridData();
- lblDefaultFolder.setLayoutData(gd);
+ lblDefaultFolder.setLayoutData(gd);
txtDefaultFolderField = new Text(composite, SWT.FLAT | SWT.BORDER | SWT.FILL);
lblDefaultFolder.setToolTipText(JPAEditorMessages.JPAEditorPreferencesPage_defaultFolderControlTooltip);
gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
gd.grabExcessHorizontalSpace = true;
txtDefaultFolderField.setLayoutData(gd);
-
+
String defaultFolder = editorProps.getProperty(PROP_DEFAULT_DIAGRAM_FOLDER.getLocalName());
txtDefaultFolderField.setText(defaultFolder);
txtDefaultFolderField.setToolTipText(JPAEditorMessages.JPAEditorPreferencesPage_defaultFolderControlTooltip);
@@ -142,23 +142,23 @@ public class JPADiagramPropertyPage extends PropertyPage {
public void modifyText(ModifyEvent e) {
validatePage();
propsModified = true;
- }
+ }
});
}
-
-
+
+
private void createDefaultPackageControl(Composite composite) {
- Label lblDefaultPackage = new Label(composite, SWT.FILL);
+ Label lblDefaultPackage = new Label(composite, SWT.FILL);
lblDefaultPackage.setText(JPAEditorMessages.JPAEditorPreferencesPage_DefaultPackageToUse);
lblDefaultPackage.setToolTipText(JPAEditorMessages.JPAEditorPreferencesPage_DefaultPackageMsg);
GridData gd = new GridData();
- lblDefaultPackage.setLayoutData(gd);
+ lblDefaultPackage.setLayoutData(gd);
txtDefaultEntityPackageField = new Text(composite, SWT.FLAT | SWT.BORDER | SWT.FILL);
lblDefaultPackage.setToolTipText(JPAEditorMessages.JPAEditorPreferencesPage_DefaultPackageMsg);
gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
gd.grabExcessHorizontalSpace = true;
txtDefaultEntityPackageField.setLayoutData(gd);
-
+
String defaultPackageName = editorProps.getProperty(PROP_DEFAULT_PACKAGE.getLocalName());
txtDefaultEntityPackageField.setText(defaultPackageName);
txtDefaultEntityPackageField.setToolTipText(JPAEditorMessages.JPAEditorPreferencesPage_DefaultPackageMsg);
@@ -166,67 +166,67 @@ public class JPADiagramPropertyPage extends PropertyPage {
public void modifyText(ModifyEvent e) {
validatePage();
propsModified = true;
- }
+ }
});
}
-
+
private void createDefaultTableNamePrefixControl(Composite composite) {
- Label lblDefaultTableNamePrfix = new Label(composite, SWT.FILL);
+ Label lblDefaultTableNamePrfix = new Label(composite, SWT.FILL);
lblDefaultTableNamePrfix.setText(JPAEditorMessages.JPAEditorPreferencesPage_DefaultTableNameLabel);
lblDefaultTableNamePrfix.setToolTipText(JPAEditorMessages.JPAEditorPreferencesPage_DefaultTableNamePrefixMsg);
GridData gd = new GridData();
- lblDefaultTableNamePrfix.setLayoutData(gd);
+ lblDefaultTableNamePrfix.setLayoutData(gd);
txtDefaultTableNamePrefix = new Text(composite, SWT.FLAT | SWT.BORDER);
lblDefaultTableNamePrfix.setToolTipText(JPAEditorMessages.JPAEditorPreferencesPage_DefaultTableNamePrefixMsg);
gd = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
gd.grabExcessHorizontalSpace = true;
txtDefaultTableNamePrefix.setLayoutData(gd);
-
+
String defaultTableNamePrefix = editorProps.getProperty(PROP_DEFAULT_TABLE_NAME_PREFIX.getLocalName());
- txtDefaultTableNamePrefix.setText(defaultTableNamePrefix);
+ txtDefaultTableNamePrefix.setText(defaultTableNamePrefix);
txtDefaultTableNamePrefix.setToolTipText(JPAEditorMessages.JPAEditorPreferencesPage_DefaultTableNamePrefixMsg);
txtDefaultTableNamePrefix.addModifyListener(new ModifyListener() {
public void modifyText(ModifyEvent e) {
validatePage();
propsModified = true;
- }
- });
+ }
+ });
}
-
+
private void createDirectEditAffectsClassControl(Composite composite) {
checkDirectEditAffectsClass = new Button(composite, SWT.FLAT | SWT.CHECK);
checkDirectEditAffectsClass.setText(JPAEditorMessages.JPAEditorPreferencesPage_directEditAffectsClass);
checkDirectEditAffectsClass.setToolTipText(JPAEditorMessages.JPAEditorPreferencesPage_directEditAffectsClassTooltip);
checkDirectEditAffectsClass.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 2, 1));
-
+
boolean defaultDirectEditAffectsClass = Boolean.parseBoolean(editorProps.getProperty(PROP_DIRECT_EDIT_AFFECTS_CLASS.getLocalName()));
checkDirectEditAffectsClass.setSelection(defaultDirectEditAffectsClass);
checkDirectEditAffectsClass.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
propsModified = true;
}
- public void widgetDefaultSelected(SelectionEvent e) {}
- });
+ public void widgetDefaultSelected(SelectionEvent e) {}
+ });
}
-
+
private void createOneToManyOldStyleControl(Composite composite) {
checkOneToManyOldStyle = new Button(composite, SWT.FLAT | SWT.CHECK);
checkOneToManyOldStyle.setText(JPAEditorMessages.JPAEditorPropertyPage_oneToManyOldStyle);
checkOneToManyOldStyle.setToolTipText(JPAEditorMessages.JPAEditorPropertyPage_oneToManyOldStyleTooltip);
checkOneToManyOldStyle.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false, 2, 1));
-
+
boolean defaultDirectEditAffectsClass = Boolean.parseBoolean(editorProps.getProperty(PROP_ONE_TO_MANY_OLD_STYLE.getLocalName()));
checkOneToManyOldStyle.setSelection(defaultDirectEditAffectsClass);
checkOneToManyOldStyle.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
propsModified = true;
}
- public void widgetDefaultSelected(SelectionEvent e) {}
- });
+ public void widgetDefaultSelected(SelectionEvent e) {}
+ });
}
-
-
-
+
+
+
private void createDefaultCollectionTypeControl(Composite composite) {
groupCollectionType = new Group(composite, 0);
groupCollectionType.setText(JPAEditorMessages.JPAEditorPreferencesPage_DefaultCollectionTypeSectionTittle);
@@ -235,20 +235,20 @@ public class JPADiagramPropertyPage extends PropertyPage {
gd.grabExcessHorizontalSpace = true;
gd.horizontalSpan = 2;
groupCollectionType.setLayoutData(gd);
-
+
GridLayout gl = new GridLayout();
gl.numColumns = 1;
groupCollectionType.setLayout(gl);
-
+
String defaultCollectionType = editorProps.getProperty(PROP_COLLECTION_TYPE.getLocalName());
-
+
createCollectionTypeButton(composite, gd, defaultCollectionType);
createListTypeButton(composite, gd, defaultCollectionType);
createSetTypeButton(composite, gd, defaultCollectionType);
createMapTypeButton(composite, gd, defaultCollectionType);
}
-
+
private void createAccessTypeControl(Composite composite) {
groupAccessType = new Group(composite, 0);
groupAccessType.setText(JPAEditorMessages.JPAEditorPreferencesPage_entityAccessTypeButtonGroupLabel);
@@ -257,17 +257,17 @@ public class JPADiagramPropertyPage extends PropertyPage {
gd.grabExcessHorizontalSpace = true;
gd.horizontalSpan = 2;
groupAccessType.setLayoutData(gd);
-
+
GridLayout gl = new GridLayout();
gl.numColumns = 1;
groupAccessType.setLayout(gl);
-
+
String defaultAccessType = editorProps.getProperty(PROP_ACCESS_TYPE.getLocalName());
-
+
createFieldAccessButton(composite, gd, defaultAccessType);
createPropertyAccessButton(composite, gd, defaultAccessType);
}
-
+
private void createCollectionTypeButton(Composite composite, GridData gd, String defaultCollectionType) {
btnCollectionType = new Button(groupCollectionType, SWT.RADIO | SWT.FLAT);
btnCollectionType.setText(COLLECTION_TYPE);
@@ -278,10 +278,10 @@ public class JPADiagramPropertyPage extends PropertyPage {
public void widgetSelected(SelectionEvent e) {
propsModified = true;
}
- public void widgetDefaultSelected(SelectionEvent e) {}
+ public void widgetDefaultSelected(SelectionEvent e) {}
});
}
-
+
private void createListTypeButton(Composite composite, GridData gd, String defaultCollectionType) {
btnListType = new Button(groupCollectionType, SWT.RADIO | SWT.FLAT);
btnListType.setText(LIST_TYPE);
@@ -292,10 +292,10 @@ public class JPADiagramPropertyPage extends PropertyPage {
public void widgetSelected(SelectionEvent e) {
propsModified = true;
}
- public void widgetDefaultSelected(SelectionEvent e) {}
+ public void widgetDefaultSelected(SelectionEvent e) {}
});
}
-
+
private void createSetTypeButton(Composite composite, GridData gd, String defaultCollectionType) {
btnSetType = new Button(groupCollectionType, SWT.RADIO | SWT.FLAT);
btnSetType.setText(SET_TYPE);
@@ -306,10 +306,10 @@ public class JPADiagramPropertyPage extends PropertyPage {
public void widgetSelected(SelectionEvent e) {
propsModified = true;
}
- public void widgetDefaultSelected(SelectionEvent e) {}
+ public void widgetDefaultSelected(SelectionEvent e) {}
});
}
-
+
private void createMapTypeButton(Composite composite, GridData gd, String defaultCollectionType) {
btnMapType = new Button(groupCollectionType, SWT.RADIO | SWT.FLAT);
btnMapType.setText(MAP_TYPE);
@@ -320,10 +320,10 @@ public class JPADiagramPropertyPage extends PropertyPage {
public void widgetSelected(SelectionEvent e) {
propsModified = true;
}
- public void widgetDefaultSelected(SelectionEvent e) {}
+ public void widgetDefaultSelected(SelectionEvent e) {}
});
- }
-
+ }
+
private void createFieldAccessButton(Composite composite, GridData gd, String defaultAccessType) {
btnFieldBasedAccess = new Button(groupAccessType, SWT.RADIO | SWT.FLAT);
btnFieldBasedAccess.setText(JPAEditorMessages.JPAEditorPreferencesPage_entityFieldBasedAccessButtonLabel);
@@ -334,49 +334,50 @@ public class JPADiagramPropertyPage extends PropertyPage {
public void widgetSelected(SelectionEvent e) {
propsModified = true;
}
- public void widgetDefaultSelected(SelectionEvent e) {}
+ public void widgetDefaultSelected(SelectionEvent e) {}
});
}
-
+
private void createPropertyAccessButton(Composite composite, GridData gd, String defaultAccessType) {
btnPropertyBasedAccess = new Button(groupAccessType, SWT.RADIO | SWT.FLAT);
btnPropertyBasedAccess.setText(JPAEditorMessages.JPAEditorPreferencesPage_entityPropertyBasedAccessButtonLabel);
gd = new GridData();
- btnPropertyBasedAccess.setLayoutData(gd);
+ btnPropertyBasedAccess.setLayoutData(gd);
btnPropertyBasedAccess.setSelection(defaultAccessType.equals(JPAEditorPreferenceInitializer.PROPERTY_VAL_ACCESS_PROPERTY_BASED));
btnPropertyBasedAccess.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
propsModified = true;
}
- public void widgetDefaultSelected(SelectionEvent e) {}
- });
+ public void widgetDefaultSelected(SelectionEvent e) {}
+ });
}
-
- protected void performDefaults() {
+
+ @Override
+ protected void performDefaults() {
String defaultFolder = store.getString(JPAEditorPreferenceInitializer.PROPERTY_DIAGRAM_FOLDER);
- txtDefaultFolderField.setText(defaultFolder);
+ txtDefaultFolderField.setText(defaultFolder);
String defaultPackageName = store.getString(JPAEditorPreferenceInitializer.PROPERTY_ENTITY_PACKAGE);
- txtDefaultEntityPackageField.setText(defaultPackageName);
+ txtDefaultEntityPackageField.setText(defaultPackageName);
String defaultTableNamePrefix = store.getString(JPAEditorPreferenceInitializer.PROPERTY_TABLE_NAME_PREFIX);
- txtDefaultTableNamePrefix.setText(defaultTableNamePrefix);
+ txtDefaultTableNamePrefix.setText(defaultTableNamePrefix);
boolean defaultDirectEditAffectsClass = store.getBoolean(JPAEditorPreferenceInitializer.PROPERTY_DIRECT_EDIT_CLASS_NAME);
checkDirectEditAffectsClass.setSelection(defaultDirectEditAffectsClass);
String defaultAccessType = store.getString(JPAEditorPreferenceInitializer.PROPERTY_ENTITY_ACCESS_TYPE);
btnFieldBasedAccess.setSelection(defaultAccessType.equals(JPAEditorPreferenceInitializer.PROPERTY_VAL_ACCESS_FIELD_BASED));
- btnPropertyBasedAccess.setSelection(defaultAccessType.equals(JPAEditorPreferenceInitializer.PROPERTY_VAL_ACCESS_PROPERTY_BASED));
+ btnPropertyBasedAccess.setSelection(defaultAccessType.equals(JPAEditorPreferenceInitializer.PROPERTY_VAL_ACCESS_PROPERTY_BASED));
String defaultCollectionType = store.getString(JPAEditorPreferenceInitializer.PROPERTY_DEFAULT_COLLECTION_TYPE);
btnCollectionType.setSelection(defaultCollectionType.equals(JPAEditorPreferenceInitializer.PROPERTY_VAL_COLLECTION_TYPE));
- btnListType.setSelection(defaultCollectionType.equals(JPAEditorPreferenceInitializer.PROPERTY_VAL_LIST_TYPE));
+ btnListType.setSelection(defaultCollectionType.equals(JPAEditorPreferenceInitializer.PROPERTY_VAL_LIST_TYPE));
btnSetType.setSelection(defaultCollectionType.equals(JPAEditorPreferenceInitializer.PROPERTY_VAL_SET_TYPE));
btnMapType.setSelection(defaultCollectionType.equals(JPAEditorPreferenceInitializer.PROPERTY_VAL_MAP_TYPE));
boolean defaultOneToManyOldStyle = store.getBoolean(JPAEditorPreferenceInitializer.PROPERTY_ONE_TO_MANY_OLD_STYLE);
if (!isJPA10Project)
- checkOneToManyOldStyle.setSelection(defaultOneToManyOldStyle);
+ checkOneToManyOldStyle.setSelection(defaultOneToManyOldStyle);
super.performDefaults();
}
-
+
synchronized protected void validatePage() {
- IStatus statFolder = JPAEditorPreferencesPage.validateDefaultFolder(txtDefaultFolderField.getText().trim(),
+ IStatus statFolder = JPAEditorPreferencesPage.validateDefaultFolder(txtDefaultFolderField.getText().trim(),
project.getName());
IStatus statPack = JPAEditorPreferencesPage.validateDefaultPackage(txtDefaultEntityPackageField.getText().trim());
IStatus statPref = JPAEditorPreferencesPage.validateTableNamePrefix(txtDefaultTableNamePrefix.getText().trim());
@@ -384,12 +385,12 @@ public class JPADiagramPropertyPage extends PropertyPage {
setErrorMessage(statFolder.getMessage());
setValid(false);
return;
- }
+ }
if (statPack.getSeverity() == IStatus.ERROR) {
setErrorMessage(statPack.getMessage());
setValid(false);
return;
- }
+ }
if (statPref.getSeverity() == IStatus.ERROR) {
setErrorMessage(statPref.getMessage());
setValid(false);
@@ -397,25 +398,27 @@ public class JPADiagramPropertyPage extends PropertyPage {
}
setErrorMessage(null);
setValid(true);
- if (statPack.getSeverity() == IStatus.WARNING) {
+ if (statPack.getSeverity() == IStatus.WARNING) {
setMessage(statPack.getMessage(), IMessageProvider.WARNING);
return;
}
- if (statPref.getSeverity() == IStatus.WARNING) {
+ if (statPref.getSeverity() == IStatus.WARNING) {
setMessage(statPref.getMessage(), IMessageProvider.WARNING);
return;
}
setMessage(null, IMessageProvider.NONE);
}
-
- protected void performApply() {
+
+ @Override
+ protected void performApply() {
saveSettingsIfModified();
}
-
- public boolean performOk() {
+
+ @Override
+ public boolean performOk() {
return saveSettingsIfModified();
}
-
+
private boolean saveSettingsIfModified() {
if (propsModified) {
boolean saved = saveSettings();
@@ -424,39 +427,39 @@ public class JPADiagramPropertyPage extends PropertyPage {
}
return true;
}
-
+
private boolean saveSettings() {
putNewValsInProps();
IProject project = (IProject)getElement().getAdapter(IProject.class);
Path path = new Path(PROJECT_SETTINGS_PATH);
- IFile quartzDataXMLFile = project.getFile(path);
+ IFile quartzDataXMLFile = project.getFile(path);
File file = new File(quartzDataXMLFile.getLocation().toOSString());
- OutputStream os = null;
+ OutputStream os = null;
try {
- os = new FileOutputStream(file);
+ os = new FileOutputStream(file);
editorProps.store(os, "This file contains JPA Diagram Editor settings"); //$NON-NLS-1$;
os.close();
return true;
} catch (IOException e) {
- MessageDialog.openError(Display.getCurrent().getActiveShell(),
- JPAEditorMessages.JPADiagramPropertyPage_errSavePropsMsgTitle,
+ MessageDialog.openError(Display.getCurrent().getActiveShell(),
+ JPAEditorMessages.JPADiagramPropertyPage_errSavePropsMsgTitle,
JPAEditorMessages.JPADiagramPropertyPage_errSavePropsMsgText);
return false;
}
}
-
+
private void putNewValsInProps() {
editorProps.put(PROP_DEFAULT_DIAGRAM_FOLDER.getLocalName(), txtDefaultFolderField.getText().trim());
editorProps.put(PROP_DEFAULT_PACKAGE.getLocalName(), txtDefaultEntityPackageField.getText().trim());
editorProps.put(PROP_DEFAULT_TABLE_NAME_PREFIX.getLocalName(), txtDefaultTableNamePrefix.getText().trim());
editorProps.put(PROP_DIRECT_EDIT_AFFECTS_CLASS.getLocalName(), "" + checkDirectEditAffectsClass.getSelection()); //$NON-NLS-1$;
- editorProps.put(PROP_ACCESS_TYPE.getLocalName(), btnFieldBasedAccess.getSelection() ? JPAEditorPreferenceInitializer.PROPERTY_VAL_ACCESS_FIELD_BASED : JPAEditorPreferenceInitializer.PROPERTY_VAL_ACCESS_PROPERTY_BASED);
+ editorProps.put(PROP_ACCESS_TYPE.getLocalName(), btnFieldBasedAccess.getSelection() ? JPAEditorPreferenceInitializer.PROPERTY_VAL_ACCESS_FIELD_BASED : JPAEditorPreferenceInitializer.PROPERTY_VAL_ACCESS_PROPERTY_BASED);
editorProps.put(PROP_COLLECTION_TYPE.getLocalName(), getCollectionProperty());
if (!isJPA10Project)
editorProps.put(PROP_ONE_TO_MANY_OLD_STYLE.getLocalName(), "" + checkOneToManyOldStyle.getSelection()); //$NON-NLS-1$;
}
-
-
+
+
private String getCollectionProperty(){
if (btnCollectionType.getSelection())
return JPAEditorPreferenceInitializer.PROPERTY_VAL_COLLECTION_TYPE;
@@ -468,162 +471,164 @@ public class JPADiagramPropertyPage extends PropertyPage {
return JPAEditorPreferenceInitializer.PROPERTY_VAL_MAP_TYPE;
return null;
}
-
+
private Properties createDefaultProps() {
return createDefaultProps(store);
}
-
+
static private Properties createDefaultProps(IPreferenceStore store) {
- Properties editorDefaultProps = new Properties();
- editorDefaultProps.setProperty(PROP_DEFAULT_DIAGRAM_FOLDER.getLocalName(), store.getString(JPAEditorPreferenceInitializer.PROPERTY_DIAGRAM_FOLDER));
+ Properties editorDefaultProps = new Properties();
+ editorDefaultProps.setProperty(PROP_DEFAULT_DIAGRAM_FOLDER.getLocalName(), store.getString(JPAEditorPreferenceInitializer.PROPERTY_DIAGRAM_FOLDER));
editorDefaultProps.setProperty(PROP_DEFAULT_PACKAGE.getLocalName(), store.getString(JPAEditorPreferenceInitializer.PROPERTY_ENTITY_PACKAGE));
editorDefaultProps.setProperty(PROP_DEFAULT_TABLE_NAME_PREFIX.getLocalName(), store.getString(JPAEditorPreferenceInitializer.PROPERTY_TABLE_NAME_PREFIX));
editorDefaultProps.setProperty(PROP_DIRECT_EDIT_AFFECTS_CLASS.getLocalName(), "" + store.getBoolean(JPAEditorPreferenceInitializer.PROPERTY_DIRECT_EDIT_CLASS_NAME)); //$NON-NLS-1$;
- editorDefaultProps.setProperty(PROP_ACCESS_TYPE.getLocalName(), store.getString(JPAEditorPreferenceInitializer.PROPERTY_ENTITY_ACCESS_TYPE));
+ editorDefaultProps.setProperty(PROP_ACCESS_TYPE.getLocalName(), store.getString(JPAEditorPreferenceInitializer.PROPERTY_ENTITY_ACCESS_TYPE));
editorDefaultProps.setProperty(PROP_COLLECTION_TYPE.getLocalName(), store.getString(JPAEditorPreferenceInitializer.PROPERTY_DEFAULT_COLLECTION_TYPE));
editorDefaultProps.setProperty(PROP_ONE_TO_MANY_OLD_STYLE.getLocalName(), "" + store.getBoolean(JPAEditorPreferenceInitializer.PROPERTY_ONE_TO_MANY_OLD_STYLE)); //$NON-NLS-1$;
-
-
+
+
return editorDefaultProps;
}
-
+
private void loadProperties() {
Properties defaultProps = createDefaultProps();
editorProps = new Properties(defaultProps);
-
+
IProject project = (IProject)getElement().getAdapter(IProject.class);
Path path = new Path(PROJECT_SETTINGS_PATH);
IFile editorProjectProperties = project.getFile(path);
-
+
File propertiesFile = new File(editorProjectProperties.getLocation().toOSString());
if (propertiesFile.exists()) {
InputStream is = null;
try {
is = new FileInputStream(propertiesFile);
- editorProps.load(is);
+ editorProps.load(is);
is.close();
} catch (IOException e) {
// ignore
}
}
}
-
+
static public Properties loadProperties(IProject project) {
IPreferenceStore store = JPADiagramEditorPlugin.getDefault().getPreferenceStore();
Properties defaultProps = createDefaultProps(store);
Properties editorProps = new Properties(defaultProps);
-
+
Path path = new Path(PROJECT_SETTINGS_PATH);
IFile editorProjectProperties = project.getFile(path);
-
- File propertiesFile = new File(editorProjectProperties.getLocation().toOSString());
- if (propertiesFile.exists()) {
- InputStream is = null;
- try {
- is = new FileInputStream(propertiesFile);
- editorProps.load(is);
- is.close();
- } catch (IOException e) {
- // ignore
+
+ if (editorProjectProperties.getLocation() != null) {
+ File propertiesFile = new File(editorProjectProperties.getLocation().toOSString());
+ if (propertiesFile.exists()) {
+ InputStream is = null;
+ try {
+ is = new FileInputStream(propertiesFile);
+ editorProps.load(is);
+ is.close();
+ } catch (IOException e) {
+ // ignore
+ }
}
}
return editorProps;
}
-
+
public static String getDefaultFolder(IProject project) {
Properties props = JPADiagramPropertyPage.loadProperties(project);
return getDefaultFolder(project, props);
}
-
+
public static String getDefaultPackage(IProject project) {
Properties props = JPADiagramPropertyPage.loadProperties(project);
return getDefaultPackage(project, props);
}
-
+
public static String getDefaultTablePrefixName(IProject project) {
Properties props = JPADiagramPropertyPage.loadProperties(project);
return getDefaultTablePrefixName(project, props);
}
-
+
public static boolean doesDirecteEditingAffectClassNameByDefault(IProject project) {
Properties props = JPADiagramPropertyPage.loadProperties(project);
return doesDirecteEditingAffectClassNameByDefault(project, props);
}
-
+
public static boolean isAccessFieldBased(IProject project) {
Properties props = JPADiagramPropertyPage.loadProperties(project);
return isAccessFieldBased(project, props);
- }
-
+ }
+
public static boolean isCollectionType(IProject project) {
Properties props = JPADiagramPropertyPage.loadProperties(project);
return isCollectionType(project, props);
}
-
+
public static boolean isListType(IProject project) {
Properties props = JPADiagramPropertyPage.loadProperties(project);
return isListType(project, props);
}
-
+
public static boolean isSetType(IProject project) {
Properties props = JPADiagramPropertyPage.loadProperties(project);
return isSetType(project, props);
}
-
+
public static boolean isMapType(IProject project) {
Properties props = JPADiagramPropertyPage.loadProperties(project);
return isMapType(project, props);
- }
-
+ }
+
public static boolean shouldOneToManyUnidirBeOldStyle(IProject project) {
Properties props = JPADiagramPropertyPage.loadProperties(project);
return shouldOneToManyUnidirBeOldStyle(project, props);
- }
+ }
//---------------------------------------------------------------------------------------------------
public static String getDefaultFolder(IProject project, Properties props) {
return props.getProperty(PROP_DEFAULT_DIAGRAM_FOLDER.getLocalName());
}
-
+
public static String getDefaultPackage(IProject project, Properties props) {
return props.getProperty(PROP_DEFAULT_PACKAGE.getLocalName());
}
-
+
public static String getDefaultTablePrefixName(IProject project, Properties props) {
return props.getProperty(PROP_DEFAULT_TABLE_NAME_PREFIX.getLocalName());
}
-
+
public static boolean doesDirecteEditingAffectClassNameByDefault(IProject project, Properties props) {
return Boolean.parseBoolean(props.getProperty(PROP_DIRECT_EDIT_AFFECTS_CLASS.getLocalName()));
}
-
+
public static boolean isAccessFieldBased(IProject project, Properties props) {
String accessType = props.getProperty(PROP_ACCESS_TYPE.getLocalName());
return accessType.equals("field"); //$NON-NLS-1$;
- }
-
+ }
+
public static boolean isCollectionType(IProject project, Properties props) {
String accessType = props.getProperty(PROP_COLLECTION_TYPE.getLocalName());
return accessType.equals("collection"); //$NON-NLS-1$;
}
-
+
public static boolean isListType(IProject project, Properties props) {
String accessType = props.getProperty(PROP_COLLECTION_TYPE.getLocalName());
return accessType.equals("list"); //$NON-NLS-1$;
}
-
+
public static boolean isSetType(IProject project, Properties props) {
String accessType = props.getProperty(PROP_COLLECTION_TYPE.getLocalName());
return accessType.equals("set"); //$NON-NLS-1$;
}
-
+
public static boolean isMapType(IProject project, Properties props) {
String accessType = props.getProperty(PROP_COLLECTION_TYPE.getLocalName());
return accessType.equals("map"); //$NON-NLS-1$;
- }
-
+ }
+
public static boolean shouldOneToManyUnidirBeOldStyle(IProject project, Properties props) {
return Boolean.parseBoolean(props.getProperty(PROP_ONE_TO_MANY_OLD_STYLE.getLocalName()));
}

Back to the top