KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > calipso > reportgenerator > userinterface > DropTargetPanel


1 package com.calipso.reportgenerator.userinterface;
2 import javax.swing.*;
3 import javax.swing.border.Border JavaDoc;
4 import java.awt.dnd.*;
5 import java.awt.datatransfer.DataFlavor JavaDoc;
6 import java.awt.*;
7 import com.calipso.reportgenerator.reportdefinitions.types.DimensionDefinitionLocationType;
8 import com.calipso.reportgenerator.common.ShowExceptionMessageDialog;
9
10
11 /**
12  * Clase utilizada para crear unn objeto con propiedades de Drop
13  */

14 public class DropTargetPanel extends JPanel implements DropTargetListener {
15
16   private FieldPositionListener listener;
17   private JSplitPane mainSplit;
18   private int location;
19
20
21   /**
22    * Setea el listener FieldPositionListener para realizar el intercambio
23    * @param listener
24    */

25   public void setFieldPositionListener(FieldPositionListener listener) {
26     this.listener = listener;
27   }
28
29
30   /**
31    * Crea un objeto DropTargetPanel
32    * @param name
33    * @param mainSplit
34    */

35   public DropTargetPanel(String JavaDoc name, JSplitPane mainSplit) {
36     this.mainSplit = mainSplit;
37     setName(name);
38     location = getX();
39     setDropTarget(new DropTarget(this, this));
40     setLayout(new FlowLayout(FlowLayout.LEFT));
41     ((FlowLayout) getLayout()).setHgap(0);
42     ((FlowLayout) getLayout()).setVgap(-2);
43     if (name == DimensionDefinitionLocationType.ROW.toString()) {
44       ((FlowLayout) getLayout()).setVgap(0);
45       validate();
46     }
47
48   }
49
50
51   /**
52    * Determine los componentes donde se podra realizar el Drag
53    * @param name
54    * @return
55    */

56   public DragSourcePanel addField(String JavaDoc name, PivotTable pivote, String JavaDoc description) {
57     DragSourcePanel panel = new DragSourcePanel(name, pivote, description, getName(),pivote.getPivotTableFrame().getReportManager(),pivote.getPivotTableFrame().getReportHandle());
58     Border JavaDoc border = new javax.swing.border.TitledBorder JavaDoc("");
59     ((javax.swing.border.TitledBorder JavaDoc)border).setTitleColor(Color.BLACK);
60     panel.setBorder(border);
61     add(panel);
62     return panel;
63   }
64
65   /**
66    * Retorna un objeto DragSourcePanel
67    * @param panel
68    * @return
69    */

70   public DragSourcePanel addFieldPanel(DragSourcePanel panel) {
71     add(panel);
72     return panel;
73   }
74
75   /**
76    * Implementa la interface DropTargetListener
77    * @param dtde
78    */

79   public void dragEnter(DropTargetDragEvent dtde) {
80   }
81
82   /**
83    * Implementa la interface DropTargetListener
84    * @param dtde
85    */

86   public void dragOver(DropTargetDragEvent dtde) {
87   }
88
89   /**
90    * Implementa la interface DropTargetListener
91    * @param dtde
92    */

93   public void dropActionChanged(DropTargetDragEvent dtde) {
94   }
95
96   /**
97    * Implementa la interface DropTargetListener
98    * @param dte
99    */

100   public void dragExit(DropTargetEvent dte) {
101
102   }
103
104   /**
105    * Implementa la interface DropTargetListener
106    * @param dtde
107    */

108   public void drop(DropTargetDropEvent dtde) {
109     DataFlavor JavaDoc stringFlavor = DataFlavor.stringFlavor;
110     String JavaDoc key = null;
111     try {
112       key = dtde.getTransferable().getTransferData(stringFlavor).toString();
113       if (getName() == "R") {
114         this.mainSplit.setDividerLocation(getWidth());
115         this.mainSplit.revalidate();
116       }
117       location = (int) dtde.getLocation().getX();
118
119       listener.fieldPositionChanged(getName(), key, dtde.getLocation());
120     }
121     catch (Exception JavaDoc e) {
122       ShowExceptionMessageDialog.initExceptionDialogMessage(com.calipso.reportgenerator.common.LanguageTraslator.traslate("214"),e);
123     }
124     dtde.dropComplete(true);
125   }
126
127   /**
128    * Retorna la posicion X del componente
129    * @return
130    */

131
132   public int getLocationComponent() {
133     return location;
134   }
135
136   /**
137    * Remueve todos los componentes
138    */

139   public void removeAllComponents() {
140     removeAll();
141   }
142 }
143
Popular Tags