Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/XMLCatalogTableViewer.java')
-rw-r--r--jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/XMLCatalogTableViewer.java159
1 files changed, 88 insertions, 71 deletions
diff --git a/jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/XMLCatalogTableViewer.java b/jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/XMLCatalogTableViewer.java
index 5ba8b02336..af7914b23c 100644
--- a/jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/XMLCatalogTableViewer.java
+++ b/jaxb/plugins/org.eclipse.jpt.jaxb.ui/src/org/eclipse/jpt/jaxb/ui/internal/wizards/classesgen/XMLCatalogTableViewer.java
@@ -14,40 +14,37 @@ package org.eclipse.jpt.jaxb.ui.internal.wizards.classesgen;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ResourceManager;
import org.eclipse.jface.viewers.ColumnWeightData;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.IDecoration;
import org.eclipse.jface.viewers.IStructuredContentProvider;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.TableLayout;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.viewers.Viewer;
import org.eclipse.jface.viewers.ViewerFilter;
-import org.eclipse.jpt.jaxb.ui.internal.plugin.JptJaxbUiPlugin;
+import org.eclipse.jpt.common.ui.JptCommonUiImages;
+import org.eclipse.jpt.common.ui.internal.jface.OverlayImageDescriptor;
+import org.eclipse.jpt.common.ui.internal.jface.PluggableTextTableLabelProvider;
+import org.eclipse.jpt.common.ui.internal.jface.ResourceManagerTableLabelProvider;
+import org.eclipse.jpt.common.utility.internal.ObjectTools;
+import org.eclipse.jpt.jaxb.ui.JptJaxbUiImages;
import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.wst.common.uriresolver.internal.util.URIHelper;
import org.eclipse.wst.xml.core.internal.catalog.provisional.ICatalogEntry;
-
import com.ibm.icu.text.Collator;
-public class XMLCatalogTableViewer extends TableViewer {
-
+public abstract class XMLCatalogTableViewer
+ extends TableViewer
+{
protected static String ERROR_STATE_KEY = "errorstatekey"; //$NON-NLS-1$
- protected static Image dtdFileImage = JptJaxbUiPlugin.instance().getImage("full/obj16/dtdfile"); //$NON-NLS-1$
- protected static Image unknownFileImage = JptJaxbUiPlugin.instance().getImage("full/obj16/text"); //$NON-NLS-1$
- protected static Image xsdFileImage = JptJaxbUiPlugin.instance().getImage("full/obj16/XSDFile"); //$NON-NLS-1$
- protected static Image errorImage = JptJaxbUiPlugin.instance().getImage("full/ovr16/error_ovr"); //$NON-NLS-1$
- // ********** constructor **********
-
- public XMLCatalogTableViewer(Composite parent, String[] columnProperties) {
+ protected XMLCatalogTableViewer(Composite parent, String[] columnProperties, ResourceManager resourceManager) {
super(parent, SWT.FULL_SELECTION);
Table table = getTable();
@@ -68,34 +65,30 @@ public class XMLCatalogTableViewer extends TableViewer {
setColumnProperties(columnProperties);
setContentProvider(new CatalogEntryContentProvider());
- setLabelProvider(new CatalogEntryLabelProvider());
+ setLabelProvider(this.buildLabelProvider(resourceManager));
}
- public Collection getXMLCatalogEntries() {
- return null;
+ protected IBaseLabelProvider buildLabelProvider(ResourceManager resourceManager) {
+ return new ResourceManagerTableLabelProvider<Object>(
+ CATALOG_ENTRY_LABEL_IMAGE_DESCRIPTOR_TRANSFORMER,
+ CATALOG_ENTRY_LABEL_TEXT_TRANSFORMER,
+ resourceManager
+ );
}
- public void menuAboutToShow(IMenuManager menuManager) {
- Action action = new Action("hello") { //$NON-NLS-1$
- public void run() {
- System.out.println("run!"); //$NON-NLS-1$
- }
- };
- menuManager.add(action);
- }
+ protected abstract Collection getXMLCatalogEntries();
public void setFilterExtensions(String[] extensions) {
resetFilters();
addFilter(new XMLCatalogTableViewerFilter(extensions));
}
- // ********** inner class **********
-
- public class CatalogEntryContentProvider implements IStructuredContentProvider {
- public void dispose() {
- }
+ // ********** content provider **********
+ public class CatalogEntryContentProvider
+ implements IStructuredContentProvider
+ {
public Object[] getElements(Object element) {
Object[] array = getXMLCatalogEntries().toArray();
Comparator comparator = new Comparator() {
@@ -114,56 +107,80 @@ public class XMLCatalogTableViewer extends TableViewer {
}
public void inputChanged(Viewer viewer, Object old, Object newobj) {
+ // NOP
}
public boolean isDeleted(Object object) {
return false;
}
+
+ public void dispose() {
+ // NOP
+ }
}
- public class CatalogEntryLabelProvider extends LabelProvider implements ITableLabelProvider {
-
- public Image getColumnImage(Object object, int columnIndex) {
- Image result = null;
- if (columnIndex == 0) {
- Image base = null;
- if (object instanceof ICatalogEntry) {
- ICatalogEntry catalogEntry = (ICatalogEntry) object;
- String uri = catalogEntry.getURI();
- if (uri.endsWith("dtd")) { //$NON-NLS-1$
- base = dtdFileImage;
- }
- else if (uri.endsWith("xsd")) { //$NON-NLS-1$
- base = xsdFileImage;
- }
- else {
- base = unknownFileImage;
- }
- if (base != null) {
- if (URIHelper.isReadableURI(uri, false)) {
- result = base;
- }
- else {
- // TODO... SSE port
- result = base;// imageFactory.createCompositeImage(base,
- // errorImage,
- // ImageFactory.BOTTOM_LEFT);
- }
- }
- }
+ // ********** label provider **********
+
+ protected static final PluggableTextTableLabelProvider.TextTransformer<Object> CATALOG_ENTRY_LABEL_TEXT_TRANSFORMER = new CatalogEntryLabelTextTransformer();
+ protected static class CatalogEntryLabelTextTransformer
+ implements PluggableTextTableLabelProvider.TextTransformer<Object>
+ {
+ public String transform(Object element, int columnIndex) {
+ return (element instanceof ICatalogEntry) ? this.transform((ICatalogEntry) element, columnIndex) : null;
+ }
+
+ protected String transform(ICatalogEntry catalogEntry, int columnIndex) {
+ return (columnIndex == 0) ?
+ catalogEntry.getKey() :
+ URIHelper.removePlatformResourceProtocol(catalogEntry.getURI());
+ }
+
+ @Override
+ public String toString() {
+ return ObjectTools.toString(this);
+ }
+ }
+
+ protected static final ResourceManagerTableLabelProvider.ImageDescriptorTransformer<Object> CATALOG_ENTRY_LABEL_IMAGE_DESCRIPTOR_TRANSFORMER = new CatalogEntryLabelImageDescriptorTransformer();
+ protected static class CatalogEntryLabelImageDescriptorTransformer
+ implements ResourceManagerTableLabelProvider.ImageDescriptorTransformer<Object>
+ {
+ public ImageDescriptor transform(Object element, int columnIndex) {
+ return (element instanceof ICatalogEntry) ? this.transform((ICatalogEntry) element, columnIndex) : null;
+ }
+
+ protected ImageDescriptor transform(ICatalogEntry catalogEntry, int columnIndex) {
+ return (columnIndex == 0) ? this.transform(catalogEntry) : null;
+ }
+
+ protected ImageDescriptor transform(ICatalogEntry catalogEntry) {
+ String uri = catalogEntry.getURI();
+ if (uri == null) {
+ return null;
}
- return result;
+ ImageDescriptor base = this.getBaseColumnImageDescriptor(uri);
+ return URIHelper.isReadableURI(uri, false) ? base : this.buildErrorImageDescriptor(base);
}
- public String getColumnText(Object object, int columnIndex) {
- String result = null;
- if (object instanceof ICatalogEntry) {
- ICatalogEntry catalogEntry = (ICatalogEntry) object;
- result = columnIndex == 0 ? catalogEntry.getKey() : catalogEntry.getURI();
- result = URIHelper.removePlatformResourceProtocol(result);
+ protected ImageDescriptor getBaseColumnImageDescriptor(String uri) {
+ uri = uri.toLowerCase();
+ if (uri.endsWith("dtd")) { //$NON-NLS-1$
+ return JptJaxbUiImages.DTD_FILE;
+ }
+ if (uri.endsWith("xsd")) { //$NON-NLS-1$
+ return JptJaxbUiImages.XSD_FILE;
}
- return result != null ? result : ""; //$NON-NLS-1$
+ return JptCommonUiImages.FILE;
+ }
+
+ protected ImageDescriptor buildErrorImageDescriptor(ImageDescriptor imageDescriptor) {
+ return new OverlayImageDescriptor(imageDescriptor, JptCommonUiImages.ERROR_OVERLAY, IDecoration.BOTTOM_LEFT);
+ }
+
+ @Override
+ public String toString() {
+ return ObjectTools.toString(this);
}
}

Back to the top