Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/DefaultViewerSorter.java')
-rw-r--r--plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/DefaultViewerSorter.java208
1 files changed, 0 insertions, 208 deletions
diff --git a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/DefaultViewerSorter.java b/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/DefaultViewerSorter.java
deleted file mode 100644
index 97f615852..000000000
--- a/plugins/org.eclipse.wst.server.ui/serverui/org/eclipse/wst/server/ui/internal/viewers/DefaultViewerSorter.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005, 2007 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - Initial API and implementation
- *******************************************************************************/
-package org.eclipse.wst.server.ui.internal.viewers;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.StringTokenizer;
-
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.wst.server.core.IRuntimeType;
-import org.eclipse.wst.server.core.IServerType;
-/**
- * Class used to sort categories, runtime types, and server types in the
- * New wizards.
- */
-public class DefaultViewerSorter extends ViewerSorter {
- public static class Version implements Comparable {
- private static final String SEPARATORS = ".,";
-
- private final String[] segments;
-
- private Version(String[] segments) {
- this.segments = segments;
- }
-
- public static Version parseVersion(String version) {
- List<String> list = new ArrayList<String>();
- StringTokenizer st = new StringTokenizer(version, SEPARATORS, false);
- while (st.hasMoreTokens())
- list.add(st.nextToken());
-
- String[] s = new String[list.size()];
- list.toArray(s);
- return new Version(s);
- }
-
- private int compareTo(String s1, String s2) {
- try {
- int i1 = Integer.parseInt(s1);
- int i2 = Integer.parseInt(s2);
- if (i1 == i2)
- return 0;
- if (i1 > i2)
- return 1;
- return -1;
- } catch (Exception e) {
- // ignore
- }
- return s1.compareTo(s2);
- }
-
- public int compareTo(Object object) {
- if (object == this)
- return 0;
-
- Version other = (Version) object;
- int i = 0;
- while (i < segments.length && i < other.segments.length) {
- String s1 = segments[i];
- String s2 = other.segments[i];
- int c = compareTo(s1, s2);
- if (c != 0)
- return c;
- i++;
- }
-
- if (i == segments.length && i == other.segments.length)
- return 0;
-
- if (i == segments.length)
- return -1;
- return 1;
- }
- }
-
- /**
- * @see ViewerSorter#compare(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
- */
- public int compare(Viewer viewer, Object o1, Object o2) {
- if (o1 instanceof AbstractTreeContentProvider.TreeElement)
- o1 = ((AbstractTreeContentProvider.TreeElement) o1).text;
-
- if (o2 instanceof AbstractTreeContentProvider.TreeElement)
- o2 = ((AbstractTreeContentProvider.TreeElement) o2).text;
-
- // filter out strings
- if (o1 instanceof String && o2 instanceof String)
- return compareCategories((String) o1, (String) o2);
- if (o1 instanceof String)
- return -1;
- if (o2 instanceof String)
- return 1;
-
- if (o1 instanceof IRuntimeType && o2 instanceof IRuntimeType)
- return compareRuntimeTypes((IRuntimeType) o1, (IRuntimeType) o2);
-
- if (o1 instanceof IServerType && o2 instanceof IServerType)
- return compareServerTypes((IServerType) o1, (IServerType) o2);
-
- return 0;
- }
-
- /**
- * Sort two category names.
- *
- * @param s1 the first category
- * @param s2 the second category
- * @return a negative number if the first element is less than the
- * second element; the value <code>0</code> if the first element is
- * equal to the second element; and a positive number if the first
- * element is greater than the second element
- */
- protected static int compareCategories(String s1, String s2) {
- try {
- Version v1 = Version.parseVersion(s1);
- Version v2 = Version.parseVersion(s2);
-
- return v1.compareTo(v2);
- } catch (NumberFormatException nfe) {
- // ignore
- }
-
- return s1.compareTo(s2);
- }
-
- /**
- * Returns <code>true</code> if the two items are in the same 'family', and
- * <code>false</code> otherwise.
- *
- * @param s1 - first name
- * @param v1 - first version
- * @param s2 - second name
- * @param v2 - second version
- * @return <code>true</code> if the two items are in the same 'family', and
- * <code>false</code> otherwise
- */
- protected static boolean isSameFamily(String s1, String v1, String s2, String v2) {
- if (s1 == null || s2 == null)
- return false;
-
- if (v1 != null) {
- int ind = s1.indexOf(v1);
- if (ind >= 0)
- s1 = s1.substring(0, ind) + s1.substring(ind+v1.length());
- }
-
- if (v2 != null) {
- int ind = s2.indexOf(v2);
- if (ind >= 0)
- s2 = s2.substring(0, ind) + s2.substring(ind+v2.length());
- }
- return (s1.equals(s2));
- }
-
- protected static int compareVersions(String s1, String s2) {
- Version v1 = Version.parseVersion(s1);
- Version v2 = Version.parseVersion(s2);
-
- return v1.compareTo(v2);
- }
-
- /**
- * Sort two runtime types.
- *
- * @param r1 the first runtime type
- * @param r2 the second runtime type
- * @return a negative number if the first element is less than the
- * second element; the value <code>0</code> if the first element is
- * equal to the second element; and a positive number if the first
- * element is greater than the second element
- */
- protected static int compareRuntimeTypes(IRuntimeType r1, IRuntimeType r2) {
- if (isSameFamily(r1.getName(), r1.getVersion(), r2.getName(), r2.getVersion()))
- return compareVersions(r1.getVersion(), r2.getVersion());
-
- return r1.getName().compareToIgnoreCase(r2.getName());
- }
-
- /**
- * Sort two server types.
- *
- * @param s1 the first server type
- * @param s2 the second server type
- * @return a negative number if the first element is less than the
- * second element; the value <code>0</code> if the first element is
- * equal to the second element; and a positive number if the first
- * element is greater than the second element
- */
- protected static int compareServerTypes(IServerType s1, IServerType s2) {
- IRuntimeType r1 = s1.getRuntimeType();
- IRuntimeType r2 = s2.getRuntimeType();
- if (r1 != null && r2 != null) {
- if (isSameFamily(s1.getName(), r1.getVersion(), s2.getName(), r2.getVersion()))
- return compareVersions(r1.getVersion(), r2.getVersion());
- }
-
- return s1.getName().compareToIgnoreCase(s2.getName());
- }
-} \ No newline at end of file

Back to the top