Bug 517693 - Allow to specify the filename for the extraction of the App
Ids in the model editor
Change-Id: Ic08d894441ecb5fab49c190f0fd4632586d7ba21
Signed-off-by: initialflame <shawn.kleese@wtnet.de>
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java
index d98df76..3c8a96a 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.java
@@ -750,6 +750,7 @@
public String ExportIdsHandler_Dialog_DialogTitle;
public String ExportIdsHandler_Dialog_DialogMessage;
public String ExportIdsHandler_Dialog_SelectProject;
+ public String ExportIdsHandler_Dialog_TargetClassName;
public String ObjectViewer_Tooltip_Value;
public String ObjectViewer_Tooltip_InjectionKey;
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties
index 7f3814d..555e793 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/Messages.properties
@@ -758,6 +758,7 @@
ExportIdsHandler_Dialog_DialogTitle=Export Element Ids
ExportIdsHandler_Dialog_DialogMessage=Export application model element Ids into a java file for static reference
ExportIdsHandler_Dialog_SelectProject=Please select a Java project to continue
+ExportIdsHandler_Dialog_TargetClassName=Target Classname
ObjectViewer_Tooltip_Value=Value
ObjectViewer_Tooltip_InjectionKey=Injection key
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/properties/ExportIdsHandler.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/properties/ExportIdsHandler.java
index 98bcb71..c9be474 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/properties/ExportIdsHandler.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/properties/ExportIdsHandler.java
@@ -15,7 +15,9 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+
import javax.inject.Named;
+
import org.eclipse.core.databinding.observable.list.IObservableList;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
@@ -50,12 +52,14 @@
import org.eclipse.jface.viewers.TableViewerColumn;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.swt.widgets.Text;
/**
* This handler exports all Id values within the application model to a file for
@@ -64,6 +68,8 @@
* <code>AppModelId.java</code>.
*/
public class ExportIdsHandler {
+ public static final String DEFAULT_APPMODELID_CLASSNAME = "AppModelId";
+
@Execute
public void execute(@Named(IServiceConstants.ACTIVE_SHELL) Shell shell, @Translation Messages messages, IModelResource resource, IResourcePool pool, IProject project) {
TitleAreaDialog dialog = new ExportIdDialog(shell, messages, resource.getRoot(), pool, project);
@@ -76,6 +82,7 @@
private IResourcePool pool;
private JavaClass clazz;
private CheckboxTableViewer viewer;
+ private Text textClassName;
public ExportIdDialog(Shell parentShell, Messages messages, IObservableList list, IResourcePool pool, IProject project) {
super(parentShell);
@@ -84,7 +91,6 @@
this.pool = pool;
clazz = new JavaClass();
- clazz.name = "AppModelId"; //$NON-NLS-1$
if (JavaProject.hasJavaNature(project)) {
try {
@@ -111,8 +117,28 @@
setMessage(messages.ExportIdsHandler_Dialog_DialogMessage);
setTitleImage(pool.getImageUnchecked(ResourceProvider.IMG_Wizban16_extstr_wiz));
- Composite container = (Composite) super.createDialogArea(parent);
- container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false));
+ Composite content = (Composite) super.createDialogArea(parent);
+ content.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ Composite container = new Composite(content, SWT.NONE);
+ container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
+
+ GridLayout gl = new GridLayout(2, false);
+ gl.numColumns = 2;
+ gl.marginBottom = 4;
+
+ container.setLayout(gl);
+ Label lblTargetClass = new Label(container, SWT.NONE);
+ lblTargetClass.setText(messages.ExportIdsHandler_Dialog_TargetClassName);
+
+ textClassName = new Text(container, SWT.BORDER);
+ textClassName.setText(DEFAULT_APPMODELID_CLASSNAME);
+
+ GridData gdcn = new GridData();
+ gdcn.horizontalAlignment = SWT.FILL;
+ gdcn.grabExcessHorizontalSpace = true;
+
+ textClassName.setLayoutData(gdcn);
Table t = new Table(container, SWT.BORDER | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.CHECK);
GridData gd = new GridData(SWT.FILL, SWT.FILL, true, true);
@@ -120,6 +146,7 @@
container.setLayoutData(gd);
GridData gd2 = new GridData(SWT.FILL, SWT.FILL, true, true);
+ gd2.horizontalSpan = 2;
gd2.heightHint = t.getItemHeight() * 17;
t.setHeaderVisible(true);
t.setLinesVisible(true);
@@ -219,6 +246,8 @@
@Override
protected void okPressed() { // See AbstractNewClassWizard
+ clazz.name = textClassName.getText();
+
Object[] els = viewer.getCheckedElements();
if (els.length > 0) {
try {