Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian de Alwis2011-11-18 15:27:32 +0000
committerBrian de Alwis2011-11-18 15:27:32 +0000
commit41aa1d294ab9dfb27b38e7c272e9c7c3e99942bb (patch)
treed182fc2baf845881bab74793f95a993c62dcad30
parentd85ab583f93590ba3f43c341a14b7a92aa1eaf97 (diff)
downloadorg.eclipse.e4.tools-41aa1d294ab9dfb27b38e7c272e9c7c3e99942bb.tar.gz
org.eclipse.e4.tools-41aa1d294ab9dfb27b38e7c272e9c7c3e99942bb.tar.xz
org.eclipse.e4.tools-41aa1d294ab9dfb27b38e7c272e9c7c3e99942bb.zip
Use proper per-column label providers and enable tooltips.
-rw-r--r--bundles/org.eclipse.e4.tools.css.spy/src/org/eclipse/e4/tools/css/spy/CssSpyDialog.java66
-rw-r--r--bundles/org.eclipse.e4.tools.css.spy/src/org/eclipse/e4/tools/css/spy/WidgetCSSDetailsLabelProvider.java57
2 files changed, 51 insertions, 72 deletions
diff --git a/bundles/org.eclipse.e4.tools.css.spy/src/org/eclipse/e4/tools/css/spy/CssSpyDialog.java b/bundles/org.eclipse.e4.tools.css.spy/src/org/eclipse/e4/tools/css/spy/CssSpyDialog.java
index 0a4b9047..64432495 100644
--- a/bundles/org.eclipse.e4.tools.css.spy/src/org/eclipse/e4/tools/css/spy/CssSpyDialog.java
+++ b/bundles/org.eclipse.e4.tools.css.spy/src/org/eclipse/e4/tools/css/spy/CssSpyDialog.java
@@ -22,6 +22,7 @@ import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.layout.TableColumnLayout;
import org.eclipse.jface.layout.TreeColumnLayout;
import org.eclipse.jface.viewers.ColumnLabelProvider;
+import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
import org.eclipse.jface.viewers.ColumnWeightData;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.SelectionChangedEvent;
@@ -330,41 +331,76 @@ public class CssSpyDialog extends Dialog {
// / THE WIDGET TREE
Composite widgetsComposite = new Composite(sashForm, SWT.NONE);
- // GridData gridWData = new GridData(SWT.FILL, SWT.FILL, true, true, 2,
- // 1);
- // gridWData.minimumHeight = 100;
- // widgetsComposite.setLayoutData(gridWData);
widgetTreeViewer = new TreeViewer(widgetsComposite, SWT.BORDER);
widgetTreeViewer.setContentProvider(new WidgetTreeProvider());
widgetTreeViewer.setAutoExpandLevel(0);
widgetTreeViewer.getTree().setLinesVisible(true);
widgetTreeViewer.getTree().setHeaderVisible(true);
+ ColumnViewerToolTipSupport.enableFor(widgetTreeViewer);
TreeViewerColumn widgetTypeColumn = new TreeViewerColumn(
widgetTreeViewer, SWT.NONE);
- widgetTypeColumn.setLabelProvider(new WidgetCSSDetailsLabelProvider());
widgetTypeColumn.getColumn().setWidth(100);
widgetTypeColumn.getColumn().setText("Widget");
+ widgetTypeColumn.setLabelProvider(new ColumnLabelProvider() {
+ @Override
+ public String getText(Object item) {
+ CSSStylableElement element = CssSpyDialog.getCSSElement(item);
+ return element.getLocalName() + " ("
+ + element.getNamespaceURI() + ")";
+ }
+ });
- TreeViewerColumn widgetColumnId = new TreeViewerColumn(
+ TreeViewerColumn widgetClassColumn = new TreeViewerColumn(
widgetTreeViewer, SWT.NONE);
- widgetColumnId.setLabelProvider(new WidgetCSSDetailsLabelProvider());
- widgetColumnId.getColumn().setWidth(100);
- widgetColumnId.getColumn().setText("CSS Class");
+ widgetClassColumn.getColumn().setText("CSS Class");
+ widgetClassColumn.getColumn().setWidth(100);
+ widgetClassColumn.setLabelProvider(new ColumnLabelProvider() {
+ @Override
+ public String getText(Object item) {
+ CSSStylableElement element = CssSpyDialog.getCSSElement(item);
+ if (element.getCSSClass() == null) {
+ return null;
+ }
+ String classes[] = element.getCSSClass().split(" +");
+ return classes.length <= 1 ? classes[0] : classes[0] + " (+"
+ + (classes.length - 1) + " others)";
+ }
+
+ @Override
+ public String getToolTipText(Object item) {
+ CSSStylableElement element = CssSpyDialog.getCSSElement(item);
+ if (element == null) {
+ return null;
+ }
+ StringBuilder sb = new StringBuilder();
+ sb.append(element.getLocalName()).append(" (")
+ .append(element.getNamespaceURI()).append(")");
+ sb.append("\nClasses:\n ");
+ Activator.join(sb, element.getCSSClass().split(" +"), "\n ");
+ return sb.toString();
+ }
+ });
- TreeViewerColumn widgetColumnClass = new TreeViewerColumn(
+ TreeViewerColumn widgetIdColumn = new TreeViewerColumn(
widgetTreeViewer, SWT.NONE);
- widgetColumnClass.setLabelProvider(new WidgetCSSDetailsLabelProvider());
- widgetColumnClass.getColumn().setWidth(100);
- widgetColumnClass.getColumn().setText("CSS Id");
+ widgetIdColumn.getColumn().setWidth(100);
+ widgetIdColumn.getColumn().setText("CSS Id");
+ widgetIdColumn.setLabelProvider(new ColumnLabelProvider() {
+ @Override
+ public String getText(Object item) {
+ CSSStylableElement element = CssSpyDialog.getCSSElement(item);
+ return element.getCSSId();
+ }
+ });
TreeColumnLayout widgetsTableLayout = new TreeColumnLayout();
widgetsTableLayout.setColumnData(widgetTypeColumn.getColumn(),
new ColumnWeightData(50));
- widgetsTableLayout.setColumnData(widgetColumnClass.getColumn(),
+ widgetsTableLayout.setColumnData(widgetIdColumn.getColumn(),
new ColumnWeightData(40));
- widgetsTableLayout.setColumnData(widgetColumnId.getColumn(),
+ widgetsTableLayout.setColumnData(widgetClassColumn.getColumn(),
new ColumnWeightData(40));
widgetsComposite.setLayout(widgetsTableLayout);
diff --git a/bundles/org.eclipse.e4.tools.css.spy/src/org/eclipse/e4/tools/css/spy/WidgetCSSDetailsLabelProvider.java b/bundles/org.eclipse.e4.tools.css.spy/src/org/eclipse/e4/tools/css/spy/WidgetCSSDetailsLabelProvider.java
deleted file mode 100644
index 4365aa0e..00000000
--- a/bundles/org.eclipse.e4.tools.css.spy/src/org/eclipse/e4/tools/css/spy/WidgetCSSDetailsLabelProvider.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Manumitting Technologies, Inc.
- * 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:
- * Brian de Alwis (MT) - initial API and implementation
- *******************************************************************************/
-package org.eclipse.e4.tools.css.spy;
-
-import org.eclipse.e4.ui.css.core.dom.CSSStylableElement;
-import org.eclipse.jface.viewers.ColumnLabelProvider;
-import org.eclipse.jface.viewers.ViewerCell;
-
-public class WidgetCSSDetailsLabelProvider extends ColumnLabelProvider {
- @Override
- public void update(ViewerCell cell) {
- super.update(cell);
- CSSStylableElement element = CssSpyDialog.getCSSElement(cell.getElement());
- if (element == null) {
- return;
- }
- switch(cell.getColumnIndex()) {
- case 0:
- cell.setText(element.getLocalName() + " (" + element.getNamespaceURI() + ")");
- break;
- case 1:
- if (element.getCSSClass() == null) {
- cell.setText("");
- } else {
- String classes[] = element.getCSSClass().split(" +");
- cell.setText(classes.length <= 1 ? classes[0] : classes[0] + " (+" + (classes.length - 1) + " others)");
- }
- return;
- case 2:
- cell.setText(element.getCSSId());
- return;
- }
- }
-
- @Override
- public String getToolTipText(Object item) {
- CSSStylableElement element = CssSpyDialog.getCSSElement(item);
- if (element == null) {
- return null;
- }
- StringBuilder sb = new StringBuilder();
- sb.append(element.getLocalName()).append(" (").append(element.getNamespaceURI()).append(")");
- sb.append("\nClasses:\n ");
- Activator.join(sb, element.getCSSClass().split(" +"), "\n ");
- return sb.toString();
- }
-
-
-}

Back to the top