X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.utils.ui.workbench%2Fsrc%2Forg%2Fsimantics%2Futils%2Fui%2Fworkbench%2Fui%2FTableColumnSorter.java;h=c3fdb5b9cc5e98e9d3bb2403720a9ccf8bbc7b47;hb=e18cdb01663e3ebdae25e66bf158348bbf823a07;hp=2ce76b50144c25e59f4cce5e28d99acb77a6be4b;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git
diff --git a/bundles/org.simantics.utils.ui.workbench/src/org/simantics/utils/ui/workbench/ui/TableColumnSorter.java b/bundles/org.simantics.utils.ui.workbench/src/org/simantics/utils/ui/workbench/ui/TableColumnSorter.java
index 2ce76b501..c3fdb5b9c 100644
--- a/bundles/org.simantics.utils.ui.workbench/src/org/simantics/utils/ui/workbench/ui/TableColumnSorter.java
+++ b/bundles/org.simantics.utils.ui.workbench/src/org/simantics/utils/ui/workbench/ui/TableColumnSorter.java
@@ -1,236 +1,236 @@
-/*******************************************************************************
- * Copyright (c) 2007, 2010 Association for Decentralized Information Management
- * in Industry THTH ry.
- * 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:
- * VTT Technical Research Centre of Finland - initial API and implementation
- *******************************************************************************/
-package org.simantics.utils.ui.workbench.ui;
-
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.jface.viewers.IBaseLabelProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.widgets.TableColumn;
-import org.eclipse.ui.IMemento;
-
-/**
- * This class adds column sorting functionality to SWT Table widget.
- *
- * Attach this Sorter after you have created all columns.
- *
- * Usage: TableColumnSorter.attachTableColumnSorter(myTable);
- *
- * @author Toni Kalajainen
- */
-public class TableColumnSorter {
-
- /** The table */
- protected final TableViewer viewer;
-
- /** the sorter */
- protected final ColumnSorter sorter;
-
- /** column specific comparators*/
- protected Map> columnComparators =
- new HashMap>();
-
- public static TableColumnSorter attachTableColumnSorter(TableViewer viewer) {
- return new TableColumnSorter(viewer);
- }
-
- public static void unattachTableColumnSorter(TableViewer viewer) {
- viewer.setSorter(null);
- }
-
- public void setColumnComparator(int index, Comparator> comparator)
- {
- columnComparators.put(index, comparator);
- viewer.refresh();
- }
-
- private final static String PRI_ASC = "PriAsc";
- private final static String SEC_ASC = "SecAsc";
- private final static String PRI_IND = "PriInd";
- private final static String SEC_IND = "SecInd";
-
- public void saveState(String id, IMemento memento) {
- memento.putInteger(id+PRI_ASC, sorter.isAscending()?1:0);
- memento.putInteger(id+SEC_ASC, sorter.isSecondaryAscending()?1:0);
- memento.putInteger(id+PRI_IND, sorter.getIndex());
- memento.putInteger(id+SEC_IND, sorter.getSecondaryIndex());
- }
-
- public void restoreState(String id, IMemento memento) {
- if (!hasState(id, memento)) return;
-
- sorter.setAscending( memento.getInteger(id+PRI_ASC)==1 );
- sorter.setSecondaryAscending( memento.getInteger(id+SEC_ASC)==1 );
- sorter.setIndex( memento.getInteger(id+PRI_IND) );
- sorter.setSecondaryIndex( memento.getInteger(id+SEC_IND) );
-
- viewer.refresh();
- }
-
- public boolean hasState(String id, IMemento memento) {
- return (memento.getInteger(id+PRI_ASC)!=null) &&
- (memento.getInteger(id+SEC_ASC)!=null) &&
- (memento.getInteger(id+PRI_IND)!=null) &&
- (memento.getInteger(id+SEC_IND)!=null);
- }
-
- public void setColumnAscending(int index)
- {
- sorter.setIndex(index);
- sorter.setAscending(true);
- viewer.refresh();
- }
-
- private TableColumnSorter(TableViewer viewer) {
- this.viewer = viewer;
- this.sorter = new ColumnSorter();
-
- // Attach columns
- TableColumn columns[] = viewer.getTable().getColumns();
- for(int i=0; i=0)) {
- text1 = tlp.getColumnText(e1, secondaryColumnIndex);
- text2 = tlp.getColumnText(e2, secondaryColumnIndex);
- if (text1==null) text1="";
- if (text2==null) text2="";
- if (!caseSensitive) {
- text1 = text1.toLowerCase();
- text2 = text2.toLowerCase();
- }
- result = compare(secondaryColumnIndex, text1, text2, e1, e2);
-
- if (!secondaryAscending) return -result;
- }
-
- return result;
- }
-
- public boolean isCaseSensitive() {
- return caseSensitive;
- }
-
- public void setCaseSensitive(boolean caseSensitive) {
- this.caseSensitive = caseSensitive;
- }
- }
-
- public ColumnSorter getSorter() {
- return sorter;
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2007, 2010 Association for Decentralized Information Management
+ * in Industry THTH ry.
+ * 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:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.utils.ui.workbench.ui;
+
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.jface.viewers.TableViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.widgets.TableColumn;
+import org.eclipse.ui.IMemento;
+
+/**
+ * This class adds column sorting functionality to SWT Table widget.
+ *
+ * Attach this Sorter after you have created all columns.
+ *
+ * Usage: TableColumnSorter.attachTableColumnSorter(myTable);
+ *
+ * @author Toni Kalajainen
+ */
+public class TableColumnSorter {
+
+ /** The table */
+ protected final TableViewer viewer;
+
+ /** the sorter */
+ protected final ColumnSorter sorter;
+
+ /** column specific comparators*/
+ protected Map> columnComparators =
+ new HashMap>();
+
+ public static TableColumnSorter attachTableColumnSorter(TableViewer viewer) {
+ return new TableColumnSorter(viewer);
+ }
+
+ public static void unattachTableColumnSorter(TableViewer viewer) {
+ viewer.setSorter(null);
+ }
+
+ public void setColumnComparator(int index, Comparator> comparator)
+ {
+ columnComparators.put(index, comparator);
+ viewer.refresh();
+ }
+
+ private final static String PRI_ASC = "PriAsc";
+ private final static String SEC_ASC = "SecAsc";
+ private final static String PRI_IND = "PriInd";
+ private final static String SEC_IND = "SecInd";
+
+ public void saveState(String id, IMemento memento) {
+ memento.putInteger(id+PRI_ASC, sorter.isAscending()?1:0);
+ memento.putInteger(id+SEC_ASC, sorter.isSecondaryAscending()?1:0);
+ memento.putInteger(id+PRI_IND, sorter.getIndex());
+ memento.putInteger(id+SEC_IND, sorter.getSecondaryIndex());
+ }
+
+ public void restoreState(String id, IMemento memento) {
+ if (!hasState(id, memento)) return;
+
+ sorter.setAscending( memento.getInteger(id+PRI_ASC)==1 );
+ sorter.setSecondaryAscending( memento.getInteger(id+SEC_ASC)==1 );
+ sorter.setIndex( memento.getInteger(id+PRI_IND) );
+ sorter.setSecondaryIndex( memento.getInteger(id+SEC_IND) );
+
+ viewer.refresh();
+ }
+
+ public boolean hasState(String id, IMemento memento) {
+ return (memento.getInteger(id+PRI_ASC)!=null) &&
+ (memento.getInteger(id+SEC_ASC)!=null) &&
+ (memento.getInteger(id+PRI_IND)!=null) &&
+ (memento.getInteger(id+SEC_IND)!=null);
+ }
+
+ public void setColumnAscending(int index)
+ {
+ sorter.setIndex(index);
+ sorter.setAscending(true);
+ viewer.refresh();
+ }
+
+ private TableColumnSorter(TableViewer viewer) {
+ this.viewer = viewer;
+ this.sorter = new ColumnSorter();
+
+ // Attach columns
+ TableColumn columns[] = viewer.getTable().getColumns();
+ for(int i=0; i=0)) {
+ text1 = tlp.getColumnText(e1, secondaryColumnIndex);
+ text2 = tlp.getColumnText(e2, secondaryColumnIndex);
+ if (text1==null) text1="";
+ if (text2==null) text2="";
+ if (!caseSensitive) {
+ text1 = text1.toLowerCase();
+ text2 = text2.toLowerCase();
+ }
+ result = compare(secondaryColumnIndex, text1, text2, e1, e2);
+
+ if (!secondaryAscending) return -result;
+ }
+
+ return result;
+ }
+
+ public boolean isCaseSensitive() {
+ return caseSensitive;
+ }
+
+ public void setCaseSensitive(boolean caseSensitive) {
+ this.caseSensitive = caseSensitive;
+ }
+ }
+
+ public ColumnSorter getSorter() {
+ return sorter;
+ }
+
+}