Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCedric Dumoulin2016-03-15 21:29:55 +0000
committerCedric Dumoulin2016-03-17 10:07:02 +0000
commitccb038548f57bfcdbb25262ca42a88864bbfd651 (patch)
tree1a79eb1efddbdbfc983fdda1b2eefd2ce801e55c /extraplugins
parentb31846ff391f55d1a0014a450ec8e9f485d7730a (diff)
downloadorg.eclipse.papyrus-ccb038548f57bfcdbb25262ca42a88864bbfd651.tar.gz
org.eclipse.papyrus-ccb038548f57bfcdbb25262ca42a88864bbfd651.tar.xz
org.eclipse.papyrus-ccb038548f57bfcdbb25262ca42a88864bbfd651.zip
441179: [java code reverse] Reverse plugin shall provide eclipse
preferences for search path & creation path values Task-Url: https://bugs.eclipse.org/bugs/show_bug.cgi?id=441179 Remove usage of deprecated API in ReverseCodeHandler.
Diffstat (limited to 'extraplugins')
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/DndReverseCodeHandler.java29
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/Messages.java5
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/ReverseCodeHandler.java120
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/messages.properties2
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/CreationPathListEditor.java5
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/PreferenceInitializer.java6
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/PreferencePage.java4
-rw-r--r--extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/SearchPathListEditor.java3
8 files changed, 143 insertions, 31 deletions
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/DndReverseCodeHandler.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/DndReverseCodeHandler.java
index 4dca0015470..cade8f285c0 100644
--- a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/DndReverseCodeHandler.java
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/DndReverseCodeHandler.java
@@ -28,6 +28,7 @@ import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.TreeSelection;
+import org.eclipse.papyrus.infra.core.services.ServiceException;
import org.eclipse.papyrus.infra.ui.editor.IMultiDiagramEditor;
import org.eclipse.papyrus.java.reverse.ui.dialog.DndReverseCodeDialog;
import org.eclipse.papyrus.java.reverse.ui.dialog.ReverseCodeDialog;
@@ -105,20 +106,24 @@ public class DndReverseCodeHandler extends ReverseCodeHandler {
// Run the reverse
super.doExecute(dialog);
- // Find model to display
- Model model = null;
- if (displayModel) {
- String modelName = dndDialog.getValue();
- model = getModelToDisplay(diagram, modelName);
- }
-
- // Run the reverse displayer
- DisplayReverse displayReverse = new DisplayReverse(listSelection, diagram, getUmlResource(), model);
+
try {
+ // Find model to display
+ Model model = null;
+ if (displayModel) {
+ String modelName = dndDialog.getValue();
+ model = getModelToDisplay(diagram, modelName);
+ }
+
+ // Run the reverse displayer
+ DisplayReverse displayReverse = new DisplayReverse(listSelection, diagram, getUmlResource(), model);
displayReverse.execute();
} catch (JavaModelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
+ } catch (ServiceException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
}
}
@@ -184,8 +189,9 @@ public class DndReverseCodeHandler extends ReverseCodeHandler {
* @param modelName
* the name of the model the find
* @return the model which named <code>modelName</code>, or null if it doesn't exists into the current papyrus uml resource
+ * @throws ServiceException
*/
- public Model getModel(String modelName) {
+ public Model getModel(String modelName) throws ServiceException {
TreeIterator<EObject> tree = getUmlResource().getAllContents();
while (tree.hasNext()) {
for (EObject o : tree.next().eContents()) {
@@ -214,8 +220,9 @@ public class DndReverseCodeHandler extends ReverseCodeHandler {
* the name of the model to find
* @return model corresponding to the modelName if it has to be displayed, i.e. if it doesn't already displayed into the diagram, or null
* otherwise
+ * @throws ServiceException
*/
- private Model getModelToDisplay(Diagram diagram, String modelName) {
+ private Model getModelToDisplay(Diagram diagram, String modelName) throws ServiceException {
Model model = getModel(modelName);
if (model != null && !isInDiagram(diagram, model)) {
System.out.println("display model " + model);
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/Messages.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/Messages.java
index 38577506c0d..96060e9d1dd 100644
--- a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/Messages.java
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/Messages.java
@@ -9,6 +9,11 @@ public class Messages extends NLS {
public static String ReverseCodeHandler_NoModelError_Message;
public static String ReverseCodeHandler_NoModelError_Title;
+
+ public static String ReverseCodeHandler_NoPapyrusEditor_Title;
+
+ public static String ReverseCodeHandler_NoPapyrusEditor_Message;
+
static {
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/ReverseCodeHandler.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/ReverseCodeHandler.java
index cf6b83a6033..0903515ecaf 100644
--- a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/ReverseCodeHandler.java
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/ReverseCodeHandler.java
@@ -10,6 +10,7 @@ import org.eclipse.core.commands.AbstractHandler;
import org.eclipse.core.commands.ExecutionEvent;
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.IHandler;
+import org.eclipse.core.expressions.IEvaluationContext;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.emf.ecore.resource.Resource;
@@ -21,13 +22,18 @@ import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.TreeSelection;
import org.eclipse.jface.window.Window;
+import org.eclipse.papyrus.infra.core.Activator;
import org.eclipse.papyrus.infra.core.services.ServiceException;
+import org.eclipse.papyrus.infra.core.services.ServicesRegistry;
+import org.eclipse.papyrus.infra.core.services.spi.IContextualServiceRegistryTracker;
+import org.eclipse.papyrus.infra.core.utils.ServiceUtils;
import org.eclipse.papyrus.infra.ui.editor.IMultiDiagramEditor;
import org.eclipse.papyrus.infra.ui.util.EditorUtils;
-import org.eclipse.papyrus.infra.ui.util.ServiceUtilsForActionHandlers;
+import org.eclipse.papyrus.infra.ui.util.ServiceUtilsForHandlers;
import org.eclipse.papyrus.java.reverse.ui.dialog.ReverseCodeDialog;
-import org.eclipse.papyrus.uml.tools.model.UmlUtils;
+import org.eclipse.papyrus.uml.tools.model.UmlModel;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.ISources;
import org.eclipse.ui.IWorkbenchPage;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.handlers.HandlerUtil;
@@ -35,7 +41,7 @@ import org.eclipse.uml2.uml.Package;
/**
- * @author dumoulin
+ * @author cedric dumoulin
*
*/
public class ReverseCodeHandler extends AbstractHandler implements IHandler {
@@ -43,10 +49,39 @@ public class ReverseCodeHandler extends AbstractHandler implements IHandler {
private static String DefaultGenerationModeleName = "generated";
/**
+ * Event provided to the execute method. The event is stored when the execute() method start.
+ * Other method can then use this event.
+ */
+ protected ExecutionEvent event;
+ protected ServicesRegistry registry;
+
+ /**
* Method called when button is pressed.
*/
@Override
public Object execute(ExecutionEvent event) throws ExecutionException {
+
+ // Store the event in order to be able to use it from utility methods.
+ this.event = event;
+ // Lookup ServiceRegistry
+ try {
+ registry = ServiceUtilsForHandlers.getInstance().getServiceRegistry(event);
+ } catch (ServiceException e1) {
+ try {
+ registry = getContextualServiceRegistry();
+ } catch (ServiceException e) {
+ // Can't get a Papyrus ServiceRegistry.
+ Shell shell = HandlerUtil.getActiveShell(event);
+ Status errorStatus = new Status(IStatus.ERROR, Activator.PLUGIN_ID, Messages.ReverseCodeHandler_NoPapyrusEditor_Title);
+ ErrorDialog.openError(shell, "", Messages.ReverseCodeHandler_NoPapyrusEditor_Message, errorStatus);
+
+ // Stop the handler execution.
+ return null;
+ }
+ }
+
+ System.err.println("ServiceRegistry = " + registry);
+
// Try to find uml resource
final Resource umlResource;
try {
@@ -59,21 +94,28 @@ public class ReverseCodeHandler extends AbstractHandler implements IHandler {
// Stop the reverse execution.
return null;
+ } catch (ServiceException e) {
+ // No uml resource available. User must open a model. We open an error dialog with an explicit message to advice user.
+ Shell shell = HandlerUtil.getActiveShell(event);
+ Status errorStatus = new Status(IStatus.ERROR, Activator.PLUGIN_ID, Messages.ReverseCodeHandler_NoModelError_Title);
+ ErrorDialog.openError(shell, "", Messages.ReverseCodeHandler_NoModelError_Message, errorStatus);
+
+ e.printStackTrace();
+ // Stop the reverse execution.
+ return null;
}
;
String modelUid = getModelUid(umlResource);
- System.out.println("Model uid :" + modelUid);
// Get reverse parameters from a dialog
- Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActivePart().getSite().getShell();
+ Shell shell = HandlerUtil.getActiveShell(event);
// ReverseCodeDialog dialog = new ReverseCodeDialog(shell, DefaultGenerationPackageName, Arrays.asList("generated") );
final ReverseCodeDialog dialog = getDialog(shell, modelUid);
int res = dialog.open();
// System.out.println("dialog result =" + res);
if (res == Window.CANCEL) {
- System.out.println("Canceled by user.");
return null;
}
@@ -112,7 +154,8 @@ public class ReverseCodeHandler extends AbstractHandler implements IHandler {
// Try to compute a uid identifying the model. Used to store user settings.
String modelUid = umlResource.getURI().toPlatformString(true);
if (modelUid == null) {
- System.err.println("Can't compute relatif model uid. Use absolute one");
+ // Can't compute relatif model uid. Use absolute one
+// System.err.println("Can't compute relatif model uid. Use absolute one");
modelUid = umlResource.getURI().path();
}
return modelUid;
@@ -126,7 +169,13 @@ public class ReverseCodeHandler extends AbstractHandler implements IHandler {
protected void doExecute(ReverseCodeDialog dialog) {
// Create searchpaths. Add the rootmodelname as prefix.
final List<String> searchPaths = Arrays.asList(dialog.getSearchPath());
- Resource umlResource = getUmlResource();
+ Resource umlResource;
+ try {
+ umlResource = getUmlResource();
+ } catch (ServiceException e) {
+ // Should never happen, as we have already used this method and check its result (with an error message).
+ return;
+ }
String packageName = getPackageName(dialog);
JavaCodeReverse reverse = new JavaCodeReverse(getRootPackage(umlResource), packageName, searchPaths);
reverse.executeCodeReverse(umlResource, packageName, searchPaths);
@@ -148,10 +197,11 @@ public class ReverseCodeHandler extends AbstractHandler implements IHandler {
* @return the name of the selected project into explorer
*/
protected String getSelectedProjectName() {
- // Get current selection
- IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
- final ISelection selection = page.getSelection();
+
+ // Lookup selection
+ ISelection selection = getCurrentSelection();
+ // Lookup the java compilation unit.
TreeSelection treeSelection = (TreeSelection)selection;
IJavaElement selectionElement = (IJavaElement)treeSelection.getFirstElement();
String name = selectionElement.getAncestor(IJavaProject.JAVA_PROJECT).getElementName();
@@ -159,6 +209,28 @@ public class ReverseCodeHandler extends AbstractHandler implements IHandler {
}
/**
+ * Get the current selection.
+ * First, try with ISources.ACTIVE_CURRENT_SELECTION_NAME.
+ * Then try with PlatformUI.getWorkbench() ...
+ * @return
+ */
+ protected ISelection getCurrentSelection() {
+ ISelection selection=null;
+ Object context = event.getApplicationContext();
+
+ if (context instanceof IEvaluationContext) {
+ IEvaluationContext evaluationContext = (IEvaluationContext) context;
+ selection = (ISelection)evaluationContext.getVariable(ISources.ACTIVE_CURRENT_SELECTION_NAME);
+ }
+ if( selection == null) {
+ // Get current selection
+ IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+ selection = page.getSelection();
+ }
+ return selection;
+ }
+
+ /**
* Find the name of the model provided by the dialog
*
* @param dialog
@@ -178,9 +250,12 @@ public class ReverseCodeHandler extends AbstractHandler implements IHandler {
* Get the uml resource used by the model.
*
* @return the Uml Resource
+ * @throws ServiceException
*/
- protected Resource getUmlResource() {
- Resource umlResource = UmlUtils.getUmlModel().getResource();
+ protected Resource getUmlResource() throws ServiceException {
+
+ UmlModel umlModel = (UmlModel)ServiceUtils.getInstance().getModelSet(registry).getModel(UmlModel.MODEL_ID);
+ Resource umlResource = umlModel.getResource();
return umlResource;
}
@@ -210,7 +285,24 @@ public class ReverseCodeHandler extends AbstractHandler implements IHandler {
* @throws ServiceException
*/
protected TransactionalEditingDomain getEditingDomain() throws ServiceException {
- return ServiceUtilsForActionHandlers.getInstance().getTransactionalEditingDomain();
+ return ServiceUtils.getInstance().getTransactionalEditingDomain(registry);
+ }
+
+ /**
+ * Obtains the service registry determined automatically from the context of which
+ * Papyrus editor or view is active (implying the model that the user is currently editing).
+ *
+ * @return the contextual service registry, or {@code null} if none can be determined
+ * @throws ServiceException
+ * @since 2.0
+ */
+ protected ServicesRegistry getContextualServiceRegistry() throws ServiceException {
+ IContextualServiceRegistryTracker tracker = Activator.getDefault().getContextualServiceRegistryTracker();
+ if( tracker !=null) {
+ return tracker.getServiceRegistry();
+ }
+ throw new ServiceException("Can't get ServiceRegistry from Tracker");
}
+
}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/messages.properties b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/messages.properties
index a754ab7df2a..91fed190265 100644
--- a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/messages.properties
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/messages.properties
@@ -1,2 +1,4 @@
ReverseCodeHandler_NoModelError_Message=No model selected for Reverse. Please open a model where you want to add the reverse result.
ReverseCodeHandler_NoModelError_Title=No model selected
+ReverseCodeHandler_NoPapyrusEditor_Title=No Papyrus Editor selected
+ReverseCodeHandler_NoPapyrusEditor_Message=No Papyrus Editor selected for Reverse. Please open and select a Papyrus Editor, then select java classes to reverse. \ No newline at end of file
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/CreationPathListEditor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/CreationPathListEditor.java
index 979e042496d..11f0ccbbd7e 100644
--- a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/CreationPathListEditor.java
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/CreationPathListEditor.java
@@ -43,14 +43,15 @@ public class CreationPathListEditor extends ListEditor {
@Override
protected String createList(String[] items) {
StringBuffer str = new StringBuffer();
- for(String item : items)
+ for(String item : items) {
str.append(item + SPLIT_STRING);
+ }
return str.toString();
}
@Override
protected String getNewInputObject() {
- InputDialog dialog = new InputDialog(getShell(), "add creation path", "add creation path", "", new CreationPathValidator());
+ InputDialog dialog = new InputDialog(getShell(), "Add creation path", "Add creation path", "", new CreationPathValidator());
dialog.open();
// If user clicked on "cancel" button, return null to NOT add empty value
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/PreferenceInitializer.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/PreferenceInitializer.java
index 5cd34e0399e..7237ad2aa5e 100644
--- a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/PreferenceInitializer.java
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/PreferenceInitializer.java
@@ -34,6 +34,10 @@ public class PreferenceInitializer extends AbstractPreferenceInitializer {
IPreferenceStore store = Activator.getDefault().getPreferenceStore();
store.setDefault(PreferenceConstants.P_SEARCH_PATH, "java;*;osgi.*;datatype");
- store.setDefault(PreferenceConstants.P_CREATION_PATH, "java.* ; ; java" + CreationPathListEditor.SPLIT_STRING + "org.eclipse.papyrus.* ; ; *" + CreationPathListEditor.SPLIT_STRING + "org.eclipse.* ; org.eclipse.papyrus.* ; *" + CreationPathListEditor.SPLIT_STRING + " org.osgi.* ; ; osgi.*" + CreationPathListEditor.SPLIT_STRING + " datatype.* ; ; datatype");
+ store.setDefault(PreferenceConstants.P_CREATION_PATH, "java.* ; ; java"
+ + CreationPathListEditor.SPLIT_STRING + "org.eclipse.papyrus.* ; ; *"
+ + CreationPathListEditor.SPLIT_STRING + "org.eclipse.* ; org.eclipse.papyrus.* ; *"
+ + CreationPathListEditor.SPLIT_STRING + " org.osgi.* ; ; osgi.*"
+ + CreationPathListEditor.SPLIT_STRING + " datatype.* ; ; datatype");
}
}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/PreferencePage.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/PreferencePage.java
index 6654b90445c..dacb89581ef 100644
--- a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/PreferencePage.java
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/PreferencePage.java
@@ -52,10 +52,10 @@ public class PreferencePage extends FieldEditorPreferencePage implements IWorkbe
@Override
protected void createFieldEditors() {
// Search path field
- addField(new SearchPathListEditor(PreferenceConstants.P_SEARCH_PATH, "default search path", getFieldEditorParent()));
+ addField(new SearchPathListEditor(PreferenceConstants.P_SEARCH_PATH, "Default search path", getFieldEditorParent()));
// Creation path field
- addField(new CreationPathListEditor(PreferenceConstants.P_CREATION_PATH, "default creation path", getFieldEditorParent()));
+ addField(new CreationPathListEditor(PreferenceConstants.P_CREATION_PATH, "Default creation path", getFieldEditorParent()));
}
diff --git a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/SearchPathListEditor.java b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/SearchPathListEditor.java
index 92d02d3a829..a6791398d43 100644
--- a/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/SearchPathListEditor.java
+++ b/extraplugins/qompass/codegen/java/org.eclipse.papyrus.java.reverse.ui/src/org/eclipse/papyrus/java/reverse/ui/preference/SearchPathListEditor.java
@@ -66,8 +66,9 @@ public class SearchPathListEditor extends ListEditor {
@Override
protected String createList(String[] items) {
StringBuffer str = new StringBuffer();
- for(String item : items)
+ for(String item : items) {
str.append(item + ";");
+ }
return str.toString();
}

Back to the top