1 package com.calipso.reportgenerator.userinterface; 2 import javax.swing.*; 3 import javax.swing.border.Border ; 4 import java.awt.dnd.*; 5 import java.awt.datatransfer.DataFlavor ; 6 import java.awt.*; 7 import com.calipso.reportgenerator.reportdefinitions.types.DimensionDefinitionLocationType; 8 import com.calipso.reportgenerator.common.ShowExceptionMessageDialog; 9 10 11 14 public class DropTargetPanel extends JPanel implements DropTargetListener { 15 16 private FieldPositionListener listener; 17 private JSplitPane mainSplit; 18 private int location; 19 20 21 25 public void setFieldPositionListener(FieldPositionListener listener) { 26 this.listener = listener; 27 } 28 29 30 35 public DropTargetPanel(String 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 56 public DragSourcePanel addField(String name, PivotTable pivote, String description) { 57 DragSourcePanel panel = new DragSourcePanel(name, pivote, description, getName(),pivote.getPivotTableFrame().getReportManager(),pivote.getPivotTableFrame().getReportHandle()); 58 Border border = new javax.swing.border.TitledBorder (""); 59 ((javax.swing.border.TitledBorder )border).setTitleColor(Color.BLACK); 60 panel.setBorder(border); 61 add(panel); 62 return panel; 63 } 64 65 70 public DragSourcePanel addFieldPanel(DragSourcePanel panel) { 71 add(panel); 72 return panel; 73 } 74 75 79 public void dragEnter(DropTargetDragEvent dtde) { 80 } 81 82 86 public void dragOver(DropTargetDragEvent dtde) { 87 } 88 89 93 public void dropActionChanged(DropTargetDragEvent dtde) { 94 } 95 96 100 public void dragExit(DropTargetEvent dte) { 101 102 } 103 104 108 public void drop(DropTargetDropEvent dtde) { 109 DataFlavor stringFlavor = DataFlavor.stringFlavor; 110 String 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 e) { 122 ShowExceptionMessageDialog.initExceptionDialogMessage(com.calipso.reportgenerator.common.LanguageTraslator.traslate("214"),e); 123 } 124 dtde.dropComplete(true); 125 } 126 127 131 132 public int getLocationComponent() { 133 return location; 134 } 135 136 139 public void removeAllComponents() { 140 removeAll(); 141 } 142 } 143 | Popular Tags |