Bug 421514 - Product Launcers: Ordering of Product Launchers not intuitive

https://bugs.eclipse.org/bugs/show_bug.cgi?id=421514

Change-Id: I92b18817a5d0c8256c71ce297a227fa9d66583a1
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/view/properties/part/singlepage/ProductLaunchPropertyPart.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/view/properties/part/singlepage/ProductLaunchPropertyPart.java
index 8700e1a..241f842 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/view/properties/part/singlepage/ProductLaunchPropertyPart.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/view/properties/part/singlepage/ProductLaunchPropertyPart.java
@@ -13,15 +13,12 @@
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.core.IType;
 import org.eclipse.scout.sdk.Texts;
-import org.eclipse.scout.sdk.extensions.runtime.classes.RuntimeClasses;
 import org.eclipse.scout.sdk.ui.internal.ScoutSdkUi;
 import org.eclipse.scout.sdk.ui.view.properties.part.ISection;
 import org.eclipse.scout.sdk.ui.view.properties.presenter.single.ProductLaunchPresenter;
 import org.eclipse.scout.sdk.util.resources.ResourceFilters;
 import org.eclipse.scout.sdk.util.resources.ResourceUtility;
-import org.eclipse.scout.sdk.util.type.TypeUtility;
 import org.eclipse.scout.sdk.workspace.IScoutBundle;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Composite;
@@ -35,9 +32,6 @@
 public class ProductLaunchPropertyPart extends AbstractSinglePageSectionBasedViewPart {
   private static final String SECTION_ID_LINKS = "section.links";
 
-  final IType basicPermission = TypeUtility.getType(RuntimeClasses.BasicPermission);
-  final IType iForm = TypeUtility.getType(RuntimeClasses.IForm);
-
   public ProductLaunchPropertyPart() {
   }
 
diff --git a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/view/properties/part/singlepage/ScoutProjectPropertyPart.java b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/view/properties/part/singlepage/ScoutProjectPropertyPart.java
index 186fdbb..341fff8 100644
--- a/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/view/properties/part/singlepage/ScoutProjectPropertyPart.java
+++ b/org.eclipse.scout.sdk.ui/src/org/eclipse/scout/sdk/ui/view/properties/part/singlepage/ScoutProjectPropertyPart.java
@@ -63,7 +63,7 @@
 
   private static final String PROJECT_PROD_LAUNCHERS = "pref_scout_project_prod_launcher";
 
-  private ArrayList<ProductLaunchPresenter> m_launchPresenters = new ArrayList<ProductLaunchPresenter>();
+  private final ArrayList<ProductLaunchPresenter> m_launchPresenters = new ArrayList<ProductLaunchPresenter>();
 
   @Override
   protected void createSections() {
@@ -175,7 +175,15 @@
     Arrays.sort(productFiles, 0, productFiles.length, new Comparator<IFile>() {
       @Override
       public int compare(IFile o1, IFile o2) {
-        return o1.getName().compareTo(o2.getName());
+        String serverKeyWord = "server";
+        boolean o1IsServer = o1.getName().contains(serverKeyWord);
+        boolean o2IsServer = o2.getName().contains(serverKeyWord);
+        if (o1IsServer == o2IsServer) {
+          return o1.getName().compareTo(o2.getName());
+        }
+        else {
+          return Boolean.valueOf(o2IsServer).compareTo(Boolean.valueOf(o1IsServer));
+        }
       }
     });
 
diff --git a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/util/Batik17ProductFileUpgradeOperation.java b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/util/Batik17ProductFileUpgradeOperation.java
index 2da2257..87a5d1d 100644
--- a/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/util/Batik17ProductFileUpgradeOperation.java
+++ b/org.eclipse.scout.sdk/src/org/eclipse/scout/sdk/operation/util/Batik17ProductFileUpgradeOperation.java
@@ -22,7 +22,7 @@
 /**
  * <h3>{@link Batik17ProductFileUpgradeOperation}</h3>
  * 
- * @author mvi
+ * @author Matthias Villiger
  * @since 3.10.0 13.11.2013
  */
 public class Batik17ProductFileUpgradeOperation implements IOperation {