TreePanelView.java Sample

This topic inludes the source code for the TreePanelView.java Sample.

Sample Location

This sample is located in the following directory in your WebLogic Workshop installation:

BEA_HOME/weblogic81/samples/workshop/ExtensionDevKit/IdeDevKit/DragDropSimple/src/ideExtensions/dragDropSimple/

Sample Source Code


01 package ideExtensions.dragDropSimple;
02 
03 import com.bea.ide.core.datatransfer.DataTransferSvc;
04 
05 import java.awt.Component;
06 import javax.swing.JPanel;
07 import javax.swing.JPanel;
08 import javax.swing.JScrollPane;
09 import java.awt.GridLayout;
10 
11 /**
12  * A frame view that displays a tree with example data for dragging
13  * and dropping. This view registers the tree as a participant in
14  * drag/drop operations using the data transfer service.
15  */
16 public class TreePanelView extends JPanel
17         implements com.bea.ide.ui.frame.IFrameView
18 {
19     /**
20      * Called by the IDE to retrieve the user interface that should be
21      * displayed in the frame.
22      *
23      @param viewId The id, if any, for the frame specified in the frame's
24      * extension.xml file.
25      @return The user interface to display within the frame's
26      * boundaries.
27      */
28     public Component getView(String viewId)
29     {
30         return this;
31     }
32 
33     /**
34      * Called by the IDE to discover whether this frame is available
35      * for display; only called if the frame's extension.xml includes
36      * the askavailable attribute set to "true".
37      *
38      @return <code>true</code> if the frame should be available;
39      <code>false</code> if it should not be.
40      */
41     public boolean isAvailable()
42     {
43         return true;
44     }
45 
46     /**
47      * Constructs this view panel by creating a new instance of the
48      * SimpleTree and placing it within a scrolling pane. This code
49      * also registers the tree contained by this panel as supporting
50      * drag/drop actions, specifying the drag/drop driver to use.
51      */
52     public TreePanelView()
53     {
54         super(new GridLayout(10));
55         SimpleTree tree = new SimpleTree();
56         JScrollPane treePane = new JScrollPane(tree);
57         this.add(treePane);
58 
59         /**
60          * Register a drag/drop driver for the tree, specifying that
61          * this is an action to copy data from source to target (rather
62          * than, say, a move action) and that a drag image should be
63          * used.
64          */
65         DataTransferSvc.get().registerDnDSupport(tree,
66                 new SimpleTreeDragDropDriver(),
67                 javax.swing.TransferHandler.COPY,
68                 true);
69     }
70 }