From ab9c45e693149035a9aaeba71eab1851adf68e63 Mon Sep 17 00:00:00 2001 From: Johannes Eder <eder@fortiss.org> Date: Mon, 28 Mar 2011 13:59:36 +0000 Subject: [PATCH] edited Library View --- .../kernel/internal/PrototypeService.java | 16 ++- .../kernel/internal/views/LibraryView.java | 114 ++++++++---------- .../kernel/services/IPrototypeService.java | 3 + 3 files changed, 65 insertions(+), 68 deletions(-) diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PrototypeService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PrototypeService.java index 229d85e28..0eeefe04d 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PrototypeService.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/PrototypeService.java @@ -47,7 +47,7 @@ public class PrototypeService implements IPrototypeService { private static final String CONFIGURATION_ELEMENT_NAME = "modelPrototypeProvider"; /** Stores the registered prototype providers. */ - private final List<IPrototypeProvider> prototypeList = new ArrayList<IPrototypeProvider>(); + private final List<IPrototypeProvider> prototypeProviderList = new ArrayList<IPrototypeProvider>(); /** Constructor. */ public PrototypeService() { @@ -65,7 +65,7 @@ public class PrototypeService implements IPrototypeService { ce.getAttribute("provider"), bundle); IPrototypeProvider provider = (IPrototypeProvider) handlerClass .getConstructor().newInstance(); - prototypeList.add(provider); + prototypeProviderList.add(provider); } catch (Exception ex) { LoggingUtils.error(ToolingKernelActivator.getDefault(), ex.getMessage(), ex); @@ -76,6 +76,16 @@ public class PrototypeService implements IPrototypeService { /** {@inheritDoc} */ @Override public UnmodifiableList<IPrototypeProvider> getPrototypeProviders() { - return CollectionUtils.asUnmodifiable(prototypeList); + return CollectionUtils.asUnmodifiable(prototypeProviderList); + } + + /** {@inheritDoc} */ + @Override + public UnmodifiableList<Prototype> getAllPrototypes() { + List<Prototype> result = new ArrayList<Prototype>(); + for (IPrototypeProvider provider : prototypeProviderList) { + result.addAll(provider.getPrototypes()); + } + return CollectionUtils.asUnmodifiable(result); } } diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/views/LibraryView.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/views/LibraryView.java index 0ac4d7d1b..b39966f3c 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/views/LibraryView.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/views/LibraryView.java @@ -17,23 +17,22 @@ $Id: codetemplates.xml 1 2011-01-01 00:00:01Z hoelzl $ +--------------------------------------------------------------------------*/ package org.fortiss.tooling.kernel.internal.views; -import org.eclipse.emf.ecore.EObject; import org.eclipse.gef.dnd.TemplateTransfer; import org.eclipse.jface.util.LocalSelectionTransfer; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.jface.viewers.Viewer; +import org.eclipse.jface.viewers.ViewerFilter; import org.eclipse.swt.SWT; import org.eclipse.swt.dnd.DND; import org.eclipse.swt.dnd.Transfer; import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.dialogs.FilteredTree; import org.eclipse.ui.dialogs.PatternFilter; import org.eclipse.ui.part.ViewPart; -import org.fortiss.tooling.kernel.internal.editor.BindingEditor; import org.fortiss.tooling.kernel.services.IPrototypeService; +import org.fortiss.tooling.kernel.services.IPrototypeService.Prototype; /** * @@ -44,42 +43,13 @@ import org.fortiss.tooling.kernel.services.IPrototypeService; */ public class LibraryView extends ViewPart { - /** Used to show the filter box */ - private FilteredTree filteredTree; + TreeViewer viewer; - /** Library Viewer */ - private TreeViewer viewer; - - /** Listens to Editor Activations */ - // TODO (JE): implement EditorActivationListener - // private final EditorActivationListener editorActivationListener = new - // EditorActivationListener(); - - /** Current active {@link BindingEditor}. */ - private BindingEditor activeBindingEditor; - - /** The container object used. */ - private EObject containerObject = null; + FilteredTree filteredTree; /** {@inheritDoc} */ @Override public void createPartControl(Composite parent) { - viewer = new TreeViewer(parent); - - IWorkbenchPage page = getViewSite().getWorkbenchWindow() - .getActivePage(); - - // if (page != null) { switchWorkbenchEditor(page.getActiveEditor()); } - - getViewSite().setSelectionProvider(viewer); - // getSite().getWorkbenchWindow().getPartService() - // .addPartListener(editorActivationListener); - - } - - /** creates the viewer */ - public void createViewer(Composite parent) { - PatternFilter patternFilter = new PatternFilter(); patternFilter.setIncludeLeadingWildcard(true); @@ -90,30 +60,21 @@ public class LibraryView extends ViewPart { viewer.setContentProvider(new ITreeContentProvider() { @Override - public void inputChanged(Viewer viewer, Object oldInput, - Object newInput) { + public Object[] getChildren(Object parentElement) { // TODO Auto-generated method stub - + return null; } @Override - public void dispose() { - // TODO Auto-generated method stub - + public Object getParent(Object element) { + return null; } @Override public boolean hasChildren(Object element) { - // TODO Auto-generated method stub return false; } - @Override - public Object getParent(Object element) { - // TODO Auto-generated method stub - return null; - } - @Override public Object[] getElements(Object inputElement) { if (inputElement instanceof Object[]) { @@ -123,36 +84,38 @@ public class LibraryView extends ViewPart { } @Override - public Object[] getChildren(Object parentElement) { + public void dispose() { // TODO Auto-generated method stub - return null; + } - }); - viewer.setLabelProvider(new LabelProvider()); + @Override + public void inputChanged(Viewer viewer, Object oldInput, + Object newInput) { + // TODO Auto-generated method stub + } + }); + viewer.setLabelProvider(new LibraryLabelProvider()); viewer.addDragSupport(DND.DROP_COPY, new Transfer[] { TemplateTransfer.getInstance(), LocalSelectionTransfer.getTransfer() }, new EObjectDragSourceListener(viewer)); - // viewer.setInput(PrototypeMananger.getInstance().getPrototypes() - // .toArray()); + viewer.setInput(IPrototypeService.INSTANCE.getAllPrototypes().toArray()); - viewer.setInput(IPrototypeService.INSTANCE.getPrototypeProviders() - .toArray()); + viewer.addFilter(new ViewerFilter() { - /* - * viewer.addFilter(new ViewerFilter() { - * - * @Override public boolean select(Viewer viewer, Object parentElement, - * Object element) { if (element instanceof Prototype) { EObject - * prototypeObject = ((Prototype) element) .getPrototype(); // - * CompositorManager // return - * CompositionManager.getInstance().canCompose( // containerObject, - * prototypeObject, null); } return false; } }); - */ + @Override + public boolean select(Viewer viewer, Object parentElement, + Object element) { + // TODO Auto-generated method stub + return true; + } + }); + + getViewSite().setSelectionProvider(viewer); } /** {@inheritDoc} */ @@ -161,4 +124,25 @@ public class LibraryView extends ViewPart { viewer.getControl().setFocus(); } + /** The label provider used here-in. */ + private class LibraryLabelProvider extends LabelProvider { + + /** {@inheritDoc} */ + @Override + public String getText(Object element) { + if (element instanceof Prototype) { + Prototype prototype = (Prototype) element; + return prototype.getName(); + } + return super.getText(element); + } + + // TODO (JE): getImage + /* + * @Override public Image getImage(Object element) { if (element + * instanceof Prototype) { Prototype prototype = (Prototype) element; + * return ModelElementService.getInstance().getImage( + * prototype.getPrototypeObject()); } return super.getImage(element); } + */ + } } diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IPrototypeService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IPrototypeService.java index 8ab4ec757..edf4c126b 100644 --- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IPrototypeService.java +++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IPrototypeService.java @@ -40,6 +40,9 @@ public interface IPrototypeService { /** Returns the list of all registered prototype providers. */ UnmodifiableList<IPrototypeProvider> getPrototypeProviders(); + /** Returns the list of all prototypes registered any provider. */ + UnmodifiableList<Prototype> getAllPrototypes(); + /** * Prototypes consist of a generic description and preconfigured * {@link EObject}. -- GitLab