Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgkessler2009-02-11 19:02:46 +0000
committergkessler2009-02-11 19:02:46 +0000
commit31a1ff85371de0190eb1b17608796aae120c1e00 (patch)
tree7bc996d657a2245a45787e5032a751be247ff8a3
parenta854fecef2fad105cc8bedcf2fccdf51251ec21e (diff)
downloadwebtools.jsf-31a1ff85371de0190eb1b17608796aae120c1e00.tar.gz
webtools.jsf-31a1ff85371de0190eb1b17608796aae120c1e00.tar.xz
webtools.jsf-31a1ff85371de0190eb1b17608796aae120c1e00.zip
[263718] Non-breaking API change required to support custom palette in WPE
- ported to HEAD
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/schema/pageDesignerExtension.exsd27
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/IJMTConstants.java5
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java46
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/SimpleGraphicalEditor.java167
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/AbstractPaletteFactory.java28
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/IPaletteFactory.java43
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/TagToolPaletteEntry.java4
-rw-r--r--jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/CreationData.java2
8 files changed, 258 insertions, 64 deletions
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/schema/pageDesignerExtension.exsd b/jsf/plugins/org.eclipse.jst.pagedesigner/schema/pageDesignerExtension.exsd
index 9bd9c05d1..7096161f0 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/schema/pageDesignerExtension.exsd
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/schema/pageDesignerExtension.exsd
@@ -1,6 +1,6 @@
<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.jst.pagedesigner">
+<schema targetNamespace="org.eclipse.jst.pagedesigner" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
<appInfo>
<meta.schema plugin="org.eclipse.jst.pagedesigner" id="pageDesignerExtension" name="Web Page Editor Extension"/>
@@ -11,6 +11,11 @@
</annotation>
<element name="extension">
+ <annotation>
+ <appInfo>
+ <meta.element />
+ </appInfo>
+ </annotation>
<complexType>
<sequence>
<element ref="localDropHandler" minOccurs="0" maxOccurs="unbounded"/>
@@ -21,6 +26,7 @@
<element ref="tagAttributeCellEditorFactory" minOccurs="0" maxOccurs="unbounded"/>
<element ref="tagTransformOperation" minOccurs="0" maxOccurs="unbounded"/>
<element ref="propertyPageFactory" minOccurs="0" maxOccurs="unbounded"/>
+ <element ref="paletteFactory" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="point" type="string" use="required">
<annotation>
@@ -192,9 +198,24 @@ The exception to this rule is that if the reference is not plugin-qualified, the
<documentation>
Provisional API. If an extension point is found in the system, the Web Page Editor will use the factory implementation to provide its property page.
</documentation>
- <appinfo>
+ <appInfo>
<meta.attribute kind="java" basedOn="org.eclipse.jst.pagedesigner.editors.AbstractPropertySheetPageFactory:"/>
- </appinfo>
+ </appInfo>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+
+ <element name="paletteFactory">
+ <complexType>
+ <attribute name="class" type="string" use="required">
+ <annotation>
+ <documentation>
+ Provisional API. If an extension point is found in the system, the Web Page Editor will use the factory implementation to provide its paletteViewerPage
+ </documentation>
+ <appInfo>
+ <meta.attribute kind="java" basedOn="org.eclipse.jst.pagedesigner.editors.palette.AbstractPaletteFactory:"/>
+ </appInfo>
</annotation>
</attribute>
</complexType>
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/IJMTConstants.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/IJMTConstants.java
index c6ee37ec8..6b6acb6ed 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/IJMTConstants.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/IJMTConstants.java
@@ -99,4 +99,9 @@ public interface IJMTConstants {
* extension for property page factory
*/
public static final String PROPERTY_PAGE_FACTORY = "propertyPageFactory"; //$NON-NLS-1$
+ /**
+ * extension for palette viewer page factory
+ */
+ public static final String PALETTE_FACTORY = "paletteFactory"; //$NON-NLS-1$
+
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java
index 0023a318c..d70a85940 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/HTMLEditor.java
@@ -18,7 +18,6 @@ import java.util.Iterator;
import java.util.List;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
@@ -28,8 +27,6 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Platform;
import org.eclipse.gef.DefaultEditDomain;
-import org.eclipse.gef.palette.PaletteRoot;
-import org.eclipse.gef.ui.palette.PaletteViewerProvider;
import org.eclipse.gef.ui.views.palette.PalettePage;
import org.eclipse.gef.ui.views.palette.PaletteViewerPage;
import org.eclipse.jface.text.IDocument;
@@ -44,7 +41,6 @@ import org.eclipse.jst.pagedesigner.IJMTConstants;
import org.eclipse.jst.pagedesigner.PDPlugin;
import org.eclipse.jst.pagedesigner.dnd.internal.DesignerSourceMouseTrackAdapter;
import org.eclipse.jst.pagedesigner.editors.pagedesigner.PageDesignerResources;
-import org.eclipse.jst.pagedesigner.editors.palette.impl.PaletteItemManager;
import org.eclipse.jst.pagedesigner.jsp.core.pagevar.IPageVariablesProvider;
import org.eclipse.jst.pagedesigner.jsp.core.pagevar.adapter.IDocumentPageVariableAdapter;
import org.eclipse.jst.pagedesigner.parts.DocumentEditPart;
@@ -956,26 +952,18 @@ public final class HTMLEditor extends MultiPageEditorPart implements
}
return null;
}
-
- private PaletteViewerPage getPaletteViewerPage() {
- if (null == _paletteViewerPage) {
- DefaultEditDomain editDomain = getEditDomain();
- PaletteItemManager manager = PaletteItemManager
- .getInstance(getCurrentProject(getEditorInput()));
- manager.reset();
- PaletteRoot paletteRoot = _designViewer.getPaletteRoot();
- editDomain.setPaletteRoot(paletteRoot);
-
- _paletteViewerPage = (PaletteViewerPage) _designViewer.getAdapter(PalettePage.class);
- // if possible, try to use the
- if (_paletteViewerPage == null)
- {
- PaletteViewerProvider provider = _designViewer.getPaletteViewerProvider2();
- _paletteViewerPage = new PaletteViewerPage(provider);
- }
- }
- return _paletteViewerPage;
- }
+
+ /**
+ * @return PaletteViewerPage
+ */
+ private PaletteViewerPage getPaletteViewerPage()
+ {
+ if (_paletteViewerPage == null)
+ {
+ _paletteViewerPage = _designViewer.createPaletteViewerPage();
+ }
+ return _paletteViewerPage;
+ }
/**
* @return the edit domain
@@ -1073,16 +1061,6 @@ public final class HTMLEditor extends MultiPageEditorPart implements
return this._mode;
}
- private IProject getCurrentProject(IEditorInput input) {
- IProject curProject = null;
- IFile inputFile = null;
- if (input instanceof IFileEditorInput) {
- inputFile = ((IFileEditorInput) input).getFile();
- curProject = inputFile.getProject();
- }
- return curProject;
- }
-
public IEditorPart getActiveEditor() {
IEditorPart result = null;
if (_sash) {
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/SimpleGraphicalEditor.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/SimpleGraphicalEditor.java
index e644665b1..8ba9c022d 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/SimpleGraphicalEditor.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/SimpleGraphicalEditor.java
@@ -15,7 +15,12 @@ import java.util.List;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.gef.DefaultEditDomain;
import org.eclipse.gef.EditPart;
import org.eclipse.gef.GraphicalViewer;
@@ -28,6 +33,7 @@ import org.eclipse.gef.ui.palette.PaletteViewerProvider;
import org.eclipse.gef.ui.palette.FlyoutPaletteComposite.FlyoutPreferences;
import org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette;
import org.eclipse.gef.ui.parts.GraphicalViewerKeyHandler;
+import org.eclipse.gef.ui.views.palette.PaletteViewerPage;
import org.eclipse.jface.action.IAction;
import org.eclipse.jface.action.IMenuListener;
import org.eclipse.jface.action.IMenuManager;
@@ -35,6 +41,7 @@ import org.eclipse.jface.action.MenuManager;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jst.pagedesigner.IJMTConstants;
import org.eclipse.jst.pagedesigner.PDPlugin;
import org.eclipse.jst.pagedesigner.actions.container.ContainerActionGroup;
import org.eclipse.jst.pagedesigner.actions.menuextension.CustomedContextMenuActionGroup;
@@ -54,6 +61,8 @@ import org.eclipse.jst.pagedesigner.editors.actions.RelatedViewActionGroup;
import org.eclipse.jst.pagedesigner.editors.palette.DesignerPaletteCustomizer;
import org.eclipse.jst.pagedesigner.editors.palette.DesignerPaletteRootFactory;
import org.eclipse.jst.pagedesigner.editors.palette.DesignerPaletteViewerProvider;
+import org.eclipse.jst.pagedesigner.editors.palette.IPaletteFactory;
+import org.eclipse.jst.pagedesigner.editors.palette.impl.PaletteItemManager;
import org.eclipse.jst.pagedesigner.jsp.core.internal.pagevar.DocumentPageVariableAdapter;
import org.eclipse.jst.pagedesigner.jsp.core.pagevar.adapter.PageVariableAdapterFactory;
import org.eclipse.jst.pagedesigner.parts.CSSStyleAdapterFactory;
@@ -91,7 +100,7 @@ import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
public class SimpleGraphicalEditor extends GraphicalEditorWithFlyoutPalette implements
IDesignViewer, IDocumentSelectionMediator {
- private HTMLEditor _delegate;
+ private HTMLEditor _delegate;
private IHTMLGraphicalViewer _viewer;
@@ -99,6 +108,8 @@ public class SimpleGraphicalEditor extends GraphicalEditorWithFlyoutPalette impl
/** Palette component, holding the tools and shapes. */
private PaletteRoot _palette;
+
+ private PaletteViewerPage _paletteViewerPage;
private SelectionSynchronizer _synchronizer = new SelectionSynchronizer(
this);
@@ -135,6 +146,10 @@ public class SimpleGraphicalEditor extends GraphicalEditorWithFlyoutPalette impl
}
};
+ private PaletteViewerProvider _paletteViewerProvider;
+
+ protected IPaletteFactory _paletteViewerPageFactory;
+
/**
* @param delegate
* @param editdomain
@@ -142,7 +157,8 @@ public class SimpleGraphicalEditor extends GraphicalEditorWithFlyoutPalette impl
public SimpleGraphicalEditor(HTMLEditor delegate,
DefaultEditDomain editdomain) {
_delegate = delegate;
- this.setEditDomain(editdomain);
+ initPaletteFactory();
+ this.setEditDomain(editdomain);
}
protected void createGraphicalViewer(Composite parent) {
@@ -199,7 +215,7 @@ public class SimpleGraphicalEditor extends GraphicalEditorWithFlyoutPalette impl
_viewer.addDropTargetListener(new PDTemplateTransferDropTargetListener(
_viewer));
_viewer.addDropTargetListener(new ResouceDropTargetListener(_viewer));
-
+
// add double click support.
_viewer.getControl().addMouseListener(new MouseAdapter() {
public void mouseDoubleClick(MouseEvent e) {
@@ -456,38 +472,74 @@ public class SimpleGraphicalEditor extends GraphicalEditorWithFlyoutPalette impl
*/
protected PaletteRoot getPaletteRoot() {
if (_palette == null) {
- _palette = DesignerPaletteRootFactory
- .createPaletteRoot(getCurrentProject(_delegate.getEditorInput()));
+ if (_paletteViewerPageFactory != null) {
+ _palette = _paletteViewerPageFactory.createPaletteRoot(_delegate.getEditorInput());
+ }
+ if (_palette == null) {
+ _palette = DesignerPaletteRootFactory
+ .createPaletteRoot(getCurrentProject(_delegate.getEditorInput()));
+ }
}
return _palette;
}
- /*
+ /*
* (non-Javadoc)
*
* @see org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette#createPaletteViewerProvider()
*/
- protected PaletteViewerProvider createPaletteViewerProvider() {
- return new DesignerPaletteViewerProvider(getEditDomain()) {
- protected void configurePaletteViewer(PaletteViewer viewer) {
- super.configurePaletteViewer(viewer);
- viewer.setCustomizer(new DesignerPaletteCustomizer());
-
- // create a drag source listener for this palette viewer
- // together with an appropriate transfer drop target listener,
- // this will enable
- // model element creation by dragging a
- // CombinatedTemplateCreationEntries
- // from the palette into the editor
- // @see ShapesEditor#createTransferDropTargetListener()
- viewer
- .addDragSourceListener(new DesignerTemplateTransferDragSourceListener(
- viewer));
- }
- };
- }
+ protected PaletteViewerProvider createPaletteViewerProvider() {
+ if (_paletteViewerProvider == null) {
+ if (_paletteViewerPageFactory != null) {
+ _paletteViewerProvider = _paletteViewerPageFactory.createPaletteViewerProvider(getEditDomain());
+ }
+ if (_paletteViewerProvider == null) {//if still null
+ return new DesignerPaletteViewerProvider(getEditDomain()) {
+ protected void configurePaletteViewer(PaletteViewer viewer) {
+ super.configurePaletteViewer(viewer);
+ viewer.setCustomizer(new DesignerPaletteCustomizer());
+
+ // create a drag source listener for this palette viewer
+ // together with an appropriate transfer drop target listener,
+ // this will enable
+ // model element creation by dragging a
+ // CombinatedTemplateCreationEntries
+ // from the palette into the editor
+ // @see ShapesEditor#createTransferDropTargetListener()
+ viewer
+ .addDragSourceListener(new DesignerTemplateTransferDragSourceListener(
+ viewer));
+ }
+ };
+ }
+ }
+ return _paletteViewerProvider;
+ }
+ protected PaletteViewerPage createPaletteViewerPage() {
+ if (_paletteViewerPageFactory != null) {
+ _paletteViewerPage = _paletteViewerPageFactory.createPaletteViewerPage(createPaletteViewerProvider());
+ }
+ if (_paletteViewerPage == null) {
+ DefaultEditDomain editDomain = getEditDomain();
+ PaletteItemManager manager = PaletteItemManager
+ .getInstance(getCurrentProject(getEditorInput()));
+ manager.reset();
+ PaletteRoot paletteRoot = getPaletteRoot();
+ editDomain.setPaletteRoot(paletteRoot);
+
+// _paletteViewerPage = (PaletteViewerPage) super.getAdapter(PalettePage.class);
+ // if possible, try to use the
+ if (_paletteViewerPage == null)
+ {
+ PaletteViewerProvider provider = getPaletteViewerProvider2();
+ _paletteViewerPage = new PaletteViewerPage(provider);
+ }
+ }
+ return _paletteViewerPage;
+ }
+
PaletteViewerProvider getPaletteViewerProvider2()
{
return getPaletteViewerProvider();
@@ -739,4 +791,69 @@ public class SimpleGraphicalEditor extends GraphicalEditorWithFlyoutPalette impl
PageDesignerActionConstants.addStandardSelectActionGroups(selectSubMenu);
}
}
+
+
+ public PaletteViewerPage getPaletteViewerPage() {
+ if (_paletteViewerPage == null) {
+ _paletteViewerPage = createPaletteViewerPage();
+ }
+ return _paletteViewerPage;
+ }
+
+ protected IPaletteFactory initPaletteFactory()
+ {
+ if (_paletteViewerPageFactory == null) {
+ //List<IElementEditFactory> result = new ArrayList<IElementEditFactory>();
+ IExtensionPoint extensionPoint = Platform.getExtensionRegistry()
+ .getExtensionPoint(PDPlugin.getPluginId(),
+ IJMTConstants.EXTENSION_POINT_PAGEDESIGNER);
+ IExtension[] extensions = extensionPoint.getExtensions();
+
+ for (int i = 0; i < extensions.length; i++)
+ {
+ IExtension ext = extensions[i];
+ IConfigurationElement[] elementEditElement = ext
+ .getConfigurationElements();
+
+ for (int j = 0; j < elementEditElement.length; j++)
+ {
+ final IConfigurationElement element = elementEditElement[j];
+ if (element.getName().equals(
+ IJMTConstants.PALETTE_FACTORY))
+ {
+ elementEditElement[j].getAttribute("class"); //$NON-NLS-1$
+ Object obj;
+ try
+ {
+ obj = elementEditElement[j]
+ .createExecutableExtension("class"); //$NON-NLS-1$
+
+ // TODO: we need a policy based solution here,
+ // but this will do for now
+ if (obj instanceof IPaletteFactory)
+ {
+ _paletteViewerPageFactory = (IPaletteFactory) obj;
+ }
+ }
+ catch (CoreException e)
+ {
+ PDPlugin.log("Problem loading element edit extension for "+element.toString(), e); //$NON-NLS-1$
+ }
+ }
+ }
+ }
+ }
+ return _paletteViewerPageFactory;
+ }
+//
+// @Override
+// public Object getAdapter(Class type) {
+// if (type == PalettePage.class) {
+// return getPaletteViewerPage();
+// }
+// return super.getAdapter(type);
+// }
+
+
+
}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/AbstractPaletteFactory.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/AbstractPaletteFactory.java
new file mode 100644
index 000000000..646bdd572
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/AbstractPaletteFactory.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2009 Oracle 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:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.editors.palette;
+
+import org.eclipse.gef.EditDomain;
+import org.eclipse.gef.palette.PaletteRoot;
+import org.eclipse.gef.ui.palette.PaletteViewerProvider;
+import org.eclipse.gef.ui.views.palette.PaletteViewerPage;
+import org.eclipse.ui.IEditorInput;
+
+/**
+ * Abstract class that all extenders must use to provide alternate palettes
+ * to the Web Page Editor. See also {@link IPaletteFactory}
+ */
+public abstract class AbstractPaletteFactory implements IPaletteFactory {
+
+ public PaletteViewerPage createPaletteViewerPage(PaletteViewerProvider provider) {return null;}
+ public PaletteViewerProvider createPaletteViewerProvider(EditDomain domain) {return null;}
+ public PaletteRoot createPaletteRoot(IEditorInput editorInput){return null;}
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/IPaletteFactory.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/IPaletteFactory.java
new file mode 100644
index 000000000..703ccf7bb
--- /dev/null
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/IPaletteFactory.java
@@ -0,0 +1,43 @@
+/*******************************************************************************
+ * Copyright (c) 2001, 2009 Oracle 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:
+ * Oracle Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.pagedesigner.editors.palette;
+
+import org.eclipse.gef.EditDomain;
+import org.eclipse.gef.palette.PaletteRoot;
+import org.eclipse.gef.ui.palette.PaletteViewerProvider;
+import org.eclipse.gef.ui.views.palette.PaletteViewerPage;
+import org.eclipse.ui.IEditorInput;
+
+/**
+ * Create a palette parts to replace the default palette in
+ * the Web Page Editor.
+ *
+ * If any of the create methods return null, the default WPE behaviour will be used.
+ */
+public interface IPaletteFactory {
+ /**
+ * @param provider
+ * @return {@link PaletteViewerPage} - MAY return null. If null, the default palette viewer page will be used.
+ */
+ public PaletteViewerPage createPaletteViewerPage(PaletteViewerProvider provider) ;
+
+ /**
+ * @param domain
+ * @return {@link PaletteViewerProvider} - may return null. If null, the default paletteViewerProvider will be used.
+ */
+ public PaletteViewerProvider createPaletteViewerProvider(EditDomain domain) ;
+
+ /**
+ * @param editorInput
+ * @return PaletteRoot - may return null. If null, the default palette root will be used.
+ */
+ public PaletteRoot createPaletteRoot(IEditorInput editorInput);
+}
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/TagToolPaletteEntry.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/TagToolPaletteEntry.java
index 7f14afb96..40472bded 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/TagToolPaletteEntry.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/editors/palette/TagToolPaletteEntry.java
@@ -50,7 +50,9 @@ public class TagToolPaletteEntry extends ToolEntry {
* @return default prefix
*/
public String getDefaultPrefix(){
- return ((TaglibPaletteDrawer)getParent()).getDefaultPrefix();
+ if (getParent() instanceof TaglibPaletteDrawer)
+ return ((TaglibPaletteDrawer)getParent()).getDefaultPrefix();
+ return ""; //$NON-NLS-1$
}
/**
diff --git a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/CreationData.java b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/CreationData.java
index 76d29c869..cb5689fe0 100644
--- a/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/CreationData.java
+++ b/jsf/plugins/org.eclipse.jst.pagedesigner/src/org/eclipse/jst/pagedesigner/itemcreation/CreationData.java
@@ -91,7 +91,7 @@ public final class CreationData
protected static String getPrefix(String uri, IDOMModel model,
String suggested) {
// TODO: this shouldn't really add to the document
- if (ITLDConstants.URI_HTML.equalsIgnoreCase(uri)
+ if (uri==null || ITLDConstants.URI_HTML.equalsIgnoreCase(uri)
|| ITLDConstants.URI_JSP.equalsIgnoreCase(uri)
|| CMDocType.JSP11_DOC_TYPE.equalsIgnoreCase(uri)) {
return null;

Back to the top