KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > nightlabs > editor2d > edit > tree > MultiLayerDrawComponentTreeEditPart


1 /**
2  * <p> Project: com.nightlabs.editor2d </p>
3  * <p> Copyright: Copyright (c) 2004 </p>
4  * <p> Company: NightLabs GmbH (Germany) </p>
5  * <p> Creation Date: 08.12.2004 </p>
6  * <p> Author: Daniel Mazurek </p>
7 **/

8 package com.nightlabs.editor2d.edit.tree;
9
10 import java.util.ArrayList JavaDoc;
11 import java.util.Iterator JavaDoc;
12 import java.util.List JavaDoc;
13
14 import org.eclipse.gef.EditPolicy;
15 import org.eclipse.gef.editpolicies.RootComponentEditPolicy;
16 import org.eclipse.jface.resource.ImageDescriptor;
17 import org.eclipse.swt.graphics.Image;
18
19 import com.nightlabs.editor2d.DrawComponent;
20 import com.nightlabs.editor2d.EditorPlugin;
21 import com.nightlabs.editor2d.Layer;
22 import com.nightlabs.editor2d.MultiLayerDrawComponent;
23 import com.nightlabs.editor2d.editpolicy.DrawComponentContainerEditPolicy;
24 import com.nightlabs.editor2d.editpolicy.tree.MultiLayerDrawComponentTreeEditPolicy;
25 import com.nightlabs.editor2d.filter.FilterManager;
26
27
28 public class MultiLayerDrawComponentTreeEditPart
29 extends DrawComponentContainerTreeEditPart
30 {
31   public static Image SUN_ICON = ImageDescriptor.createFromFile(EditorPlugin.class, "icons/sun16.gif").createImage();
32   
33   /**
34    * @param model
35    */

36   public MultiLayerDrawComponentTreeEditPart(MultiLayerDrawComponent model, FilterManager filterMan) {
37     super(model);
38     this.filterMan = filterMan;
39   }
40 // public MultiLayerDrawComponentTreeEditPart(MultiLayerDrawComponent model) {
41
// super(model);
42
// }
43

44   protected FilterManager filterMan;
45   public FilterManager getFilterMan() {
46     return filterMan;
47   }
48   
49   public MultiLayerDrawComponent getMultiLayerDrawComponent() {
50     return (MultiLayerDrawComponent) getModel();
51   }
52   
53   /* (non-Javadoc)
54    * @see com.nightlabs.editor2d.edit.tree.DrawComponentTreeEditPart#getIcon()
55    */

56   public Image getImage() {
57     return SUN_ICON;
58   }
59
60   /**
61    * Creates and installs pertinent EditPolicies.
62    */

63   protected void createEditPolicies()
64   {
65     super.createEditPolicies();
66     installEditPolicy(EditPolicy.CONTAINER_ROLE, new DrawComponentContainerEditPolicy());
67     installEditPolicy(EditPolicy.TREE_CONTAINER_ROLE, new MultiLayerDrawComponentTreeEditPolicy());
68     //If this editpart is the contents of the viewer, then it is not deletable!
69
installEditPolicy(EditPolicy.COMPONENT_ROLE, new RootComponentEditPolicy());
70   }
71   
72   protected List JavaDoc getModelChildren()
73   {
74     if (getFilterMan().isAllFilterSet()) {
75         return getMultiLayerDrawComponent().getDrawComponents();
76     }
77     else {
78       List JavaDoc filterChildren = new ArrayList JavaDoc();
79         for (Iterator JavaDoc itFilter = getFilterMan().getFilters().iterator(); itFilter.hasNext(); ) {
80             Class JavaDoc filter = (Class JavaDoc) itFilter.next();
81         for (Iterator JavaDoc itLayers = getDrawComponentContainer().getDrawComponents().iterator(); itLayers.hasNext(); ) {
82           Layer l = (Layer) itLayers.next();
83           for (Iterator JavaDoc itDrawOrder = l.getDrawComponents().iterator(); itDrawOrder.hasNext(); ) {
84             DrawComponent dc = (DrawComponent) itDrawOrder.next();
85                 if (filter.isAssignableFrom(dc.getClass())) {
86                     filterChildren.add(dc);
87                 }
88           }
89         }
90         }
91       return filterChildren;
92     }
93   }
94 }
95
Popular Tags