Author: scabanovich
Date: 2009-03-30 08:15:27 -0400 (Mon, 30 Mar 2009)
New Revision: 14366
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/ExtendedFieldEditor.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/JavaChoicerFieldEditor.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/JavaEclipseChoicerFieldEditor.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/JavaFavoritesFieldEditor.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/PropertyEditorDialog.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/TabbedJavaChoicerFieldEditor.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/TreeSelectionFieldEditor.java
Log:
JBIDE-4100
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/ExtendedFieldEditor.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/ExtendedFieldEditor.java 2009-03-28
18:33:28 UTC (rev 14365)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/ExtendedFieldEditor.java 2009-03-30
12:15:27 UTC (rev 14366)
@@ -48,6 +48,9 @@
private Label label;
private boolean enabled = Boolean.TRUE.booleanValue();
private IAttributeErrorProvider errorProvider;
+
+ // Introduced to give opportunities of submitting or cancelling dialog from within
editor controls.
+ private PropertyEditorDialog ownerDialog;
//
protected IWidgetSettings settings;
@@ -57,6 +60,14 @@
this.settings = settings;
}
+ public void setOwnerDialog(PropertyEditorDialog dialog) {
+ ownerDialog = dialog;
+ }
+
+ public PropertyEditorDialog getOwnerDialog() {
+ return ownerDialog;
+ }
+
protected abstract void adjustForNumColumns(int numColumns);
protected void applyFont() {}
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/JavaChoicerFieldEditor.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/JavaChoicerFieldEditor.java 2009-03-28
18:33:28 UTC (rev 14365)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/JavaChoicerFieldEditor.java 2009-03-30
12:15:27 UTC (rev 14366)
@@ -28,6 +28,7 @@
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.MouseAdapter;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
@@ -163,6 +164,14 @@
tree.addSelectionChangedListener(this);
tree.setAutoExpandLevel(2);
+ tree.getControl().addMouseListener(new MouseAdapter() {
+ public void mouseDoubleClick(MouseEvent e) {
+ if(getOwnerDialog() != null) {
+ getOwnerDialog().okPressed();
+ }
+ }
+ });
+
label = new Label(composite, SWT.NONE);
label.setText(EditorMessages.getString("JavaChoicerFieldEditor.Tab1.Text.Label"));
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/JavaEclipseChoicerFieldEditor.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/JavaEclipseChoicerFieldEditor.java 2009-03-28
18:33:28 UTC (rev 14365)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/JavaEclipseChoicerFieldEditor.java 2009-03-30
12:15:27 UTC (rev 14366)
@@ -12,6 +12,7 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.lang.reflect.Field;
import java.util.ArrayList;
import org.eclipse.core.resources.IProject;
@@ -27,12 +28,17 @@
import org.eclipse.jdt.core.search.IJavaSearchScope;
import org.eclipse.jdt.core.search.SearchEngine;
import org.eclipse.jdt.core.search.TypeNameMatch;
+import org.eclipse.jdt.internal.ui.dialogs.TypeInfoViewer;
import org.eclipse.jdt.internal.ui.dialogs.TypeSelectionComponent;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Table;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.plugin.ModelPlugin;
import org.jboss.tools.common.model.ui.IValueChangeListener;
@@ -136,9 +142,37 @@
if(hasFocus(tc)) handle(tc.getSelection());
}
});
+
+ Table table = getTable();
+ if(table != null) {
+ table.addMouseListener(new MouseAdapter() {
+ public void mouseDoubleClick(MouseEvent e) {
+ if(getOwnerDialog() != null) {
+ getOwnerDialog().okPressed();
+ }
+ }
+ });
+ }
return composite;
}
-
+
+ Table getTable() {
+ try {
+ Field f = TypeSelectionComponent.class.getDeclaredField("fViewer");
+ if(f == null) return null;
+ f.setAccessible(true);
+ TypeInfoViewer v = (TypeInfoViewer)f.get(tc);
+ return v == null ? null : v.getTable();
+ } catch (NoSuchFieldException ee) {
+
+ } catch (IllegalArgumentException e2) {
+
+ } catch (IllegalAccessException e3) {
+
+ }
+ return null;
+ }
+
boolean hasFocus(Composite c) {
if(c.isFocusControl()) return true;
Control[] cs = c.getChildren();
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/JavaFavoritesFieldEditor.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/JavaFavoritesFieldEditor.java 2009-03-28
18:33:28 UTC (rev 14365)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/JavaFavoritesFieldEditor.java 2009-03-30
12:15:27 UTC (rev 14366)
@@ -25,6 +25,8 @@
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
@@ -125,6 +127,14 @@
}
});
+ classList.getControl().addMouseListener(new MouseAdapter() {
+ public void mouseDoubleClick(MouseEvent e) {
+ if(getOwnerDialog() != null) {
+ getOwnerDialog().okPressed();
+ }
+ }
+ });
+
return classList;
}
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/PropertyEditorDialog.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/PropertyEditorDialog.java 2009-03-28
18:33:28 UTC (rev 14365)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/PropertyEditorDialog.java 2009-03-30
12:15:27 UTC (rev 14366)
@@ -41,7 +41,7 @@
public PropertyEditorDialog(Shell parentShell, IPropertyEditor editor) {
super(parentShell);
this.propertyEditor = editor;
- initValue = editor.getValue();
+ initValue = editor.getValue();
}
protected Control createDialogArea(Composite parent) {
@@ -84,8 +84,17 @@
parent.setLayout(layout);
} else cn = 2;
editor.fillIntoGrid(parent, cn);
+ editor.setOwnerDialog(this);
}
-
+
+ public void okPressed() {
+ Button b = getButton(IDialogConstants.OK_ID);
+ if(b == null || !b.isEnabled()) {
+ return;
+ }
+ super.okPressed();
+ }
+
protected void buttonPressed(int buttonId) {
if (IDialogConstants.OK_ID == buttonId) {
editor.store();
@@ -98,6 +107,7 @@
adapter.removeValueChangeListener(listener);
adapter = null;
}
+ if(editor != null) editor.setOwnerDialog(null);
}
class VCL implements PropertyChangeListener {
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/TabbedJavaChoicerFieldEditor.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/TabbedJavaChoicerFieldEditor.java 2009-03-28
18:33:28 UTC (rev 14365)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/TabbedJavaChoicerFieldEditor.java 2009-03-30
12:15:27 UTC (rev 14366)
@@ -48,6 +48,12 @@
favoritesEditor = new JavaFavoritesFieldEditor(settings);
}
+ public void setOwnerDialog(PropertyEditorDialog dialog) {
+ classicEditor.setOwnerDialog(dialog);
+ eclipseEditor.setOwnerDialog(dialog);
+ favoritesEditor.setOwnerDialog(dialog);
+ }
+
protected void adjustForNumColumns(int numColumns) {
}
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/TreeSelectionFieldEditor.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/TreeSelectionFieldEditor.java 2009-03-28
18:33:28 UTC (rev 14365)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/TreeSelectionFieldEditor.java 2009-03-30
12:15:27 UTC (rev 14366)
@@ -17,6 +17,8 @@
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TreeViewer;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.MouseAdapter;
+import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
@@ -97,6 +99,13 @@
if (selectionChangedListener!=null) {
treeViewer.addSelectionChangedListener(selectionChangedListener);
}
+ treeViewer.getTree().addMouseListener(new MouseAdapter() {
+ public void mouseDoubleClick(MouseEvent e) {
+ if(getOwnerDialog() != null) {
+ getOwnerDialog().okPressed();
+ }
+ }
+ });
}
return treeViewer.getTree();
}