1 32 33 package it.businesslogic.ireport.chart.gui; 34 import it.businesslogic.ireport.gui.*; 35 import it.businesslogic.ireport.*; 36 import javax.swing.tree.*; 37 import javax.swing.table.*; 38 import javax.swing.*; 39 import it.businesslogic.ireport.chart.*; 40 import java.util.*; 41 import it.businesslogic.ireport.gui.sheet.*; 42 import it.businesslogic.ireport.gui.listview.*; 43 import it.businesslogic.ireport.util.I18n; 44 48 public class ChartSelectionJDialog extends javax.swing.JDialog { 49 50 private int dialogResult = javax.swing.JOptionPane.CANCEL_OPTION; 51 private it.businesslogic.ireport.gui.listview.JListView jListView = null; 52 private JList jList1 = null; 53 54 private Chart chart = null; 55 56 private boolean multiAxisMode = false; 57 58 59 60 public ChartSelectionJDialog(java.awt.Dialog parent, boolean modal) { 61 super(parent, modal); 62 initAll(); 63 } 64 65 66 public ChartSelectionJDialog(java.awt.Frame parent, boolean modal) { 67 super(parent, modal); 68 initAll(); 69 } 70 71 72 73 74 public void updateCharts() 75 { 76 77 javax.swing.DefaultListModel dlm = (javax.swing.DefaultListModel )jList1.getModel(); 78 79 dlm.removeAllElements(); 80 81 if (!isMultiAxisMode()) dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/pie.png","Pie", "it.businesslogic.ireport.chart.PieChart")); 82 if (!isMultiAxisMode())dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/pie3d.png","Pie 3D", "it.businesslogic.ireport.chart.Pie3DChart")); 83 dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/bar.png","Bar", "it.businesslogic.ireport.chart.BarChart")); 84 dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/bar3d.png","Bar 3D", "it.businesslogic.ireport.chart.Bar3DChart")); 85 dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/xybar.png","YX Bar", "it.businesslogic.ireport.chart.XYBarChart")); 86 dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/stackedbar.png","Stacked Bar", "it.businesslogic.ireport.chart.StackedBarChart")); 87 dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/stackedbar3d.png","Stacked Bar 3D", "it.businesslogic.ireport.chart.StackedBar3DChart")); 88 dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/line.png","Line", "it.businesslogic.ireport.chart.LineChart")); 89 dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/xyline.png","XY Line", "it.businesslogic.ireport.chart.XYLineChart")); 90 dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/area.png","Area", "it.businesslogic.ireport.chart.AreaChart")); 91 dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/xyarea.png","YX Area", "it.businesslogic.ireport.chart.XYAreaChart")); 92 dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/scatter.png","Scatter", "it.businesslogic.ireport.chart.ScatterChart")); 93 dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/bubble.png","Bubble", "it.businesslogic.ireport.chart.BubbleChart")); 94 dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/timeseries.png","Time Series", "it.businesslogic.ireport.chart.TimeSeriesChart")); 95 dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/highlow.png","High Low", "it.businesslogic.ireport.chart.HighLowChart")); 96 dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/candlestick.png","Candlestick", "it.businesslogic.ireport.chart.CandlestickChart")); 97 if (!isMultiAxisMode()) dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/meter.png","Meter", "it.businesslogic.ireport.chart.MeterChart")); 98 if (!isMultiAxisMode()) dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/thermometer.png","Thermometer", "it.businesslogic.ireport.chart.ThermometerChart")); 99 if (!isMultiAxisMode()) dlm.addElement(new ChartDescriptor("/it/businesslogic/ireport/icons/charts/multiaxis.png","Multi Axis", "it.businesslogic.ireport.chart.MultiAxisChart")); 100 101 jList1.updateUI(); 102 103 } 104 105 public void initAll() 106 { 107 initComponents(); 108 applyI18n(); 109 110 this.setDialogResult( javax.swing.JOptionPane.CANCEL_OPTION); 111 jListView = new JListView(); 112 jList1 = (JList)jListView.getList(); 113 114 115 jPanelChartType.add(jListView, java.awt.BorderLayout.CENTER); 116 117 javax.swing.DefaultListModel dlm = new javax.swing.DefaultListModel () ; 118 jList1.setModel(dlm ); 119 jList1.setCellRenderer(new ChartCellRenderer()); 120 121 updateCharts(); 122 123 124 jList1.setLayoutOrientation( JList.HORIZONTAL_WRAP); 125 this.setSize(400,400); 126 it.businesslogic.ireport.util.Misc.centerFrame(this); 127 128 jList1.setSelectionMode( DefaultListSelectionModel.SINGLE_SELECTION ); 129 jList1.addListSelectionListener( new javax.swing.event.ListSelectionListener () { 130 public void valueChanged(javax.swing.event.ListSelectionEvent e) 131 { 132 selectedChart(); 133 } 134 135 }); 136 137 javax.swing.KeyStroke escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false); 138 javax.swing.Action escapeAction = new javax.swing.AbstractAction () { 139 public void actionPerformed(java.awt.event.ActionEvent e) { 140 jButtonCancelActionPerformed(e); 141 } 142 }; 143 144 getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE"); 145 getRootPane().getActionMap().put("ESCAPE", escapeAction); 146 147 148 this.getRootPane().setDefaultButton(this.jButtonOk); 150 } 151 152 157 private void initComponents() { 159 java.awt.GridBagConstraints gridBagConstraints; 160 161 jPanelChartType = new javax.swing.JPanel (); 162 jPanel5 = new javax.swing.JPanel (); 163 jLabelChartNameVal = new javax.swing.JLabel (); 164 jPanel6 = new javax.swing.JPanel (); 165 jPanel1 = new javax.swing.JPanel (); 166 jPanel2 = new javax.swing.JPanel (); 167 jButtonOk = new javax.swing.JButton (); 168 jButtonCancel = new javax.swing.JButton (); 169 170 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 171 jPanelChartType.setLayout(new java.awt.BorderLayout ()); 172 173 jPanel5.setLayout(new java.awt.GridBagLayout ()); 174 175 jPanel5.setBorder(new javax.swing.border.TitledBorder (new javax.swing.border.EtchedBorder (), "Chart info")); 176 jPanel5.setMinimumSize(new java.awt.Dimension (10, 50)); 177 jPanel5.setPreferredSize(new java.awt.Dimension (10, 50)); 178 gridBagConstraints = new java.awt.GridBagConstraints (); 179 gridBagConstraints.gridx = 1; 180 gridBagConstraints.gridy = 0; 181 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 182 gridBagConstraints.ipadx = 1; 183 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 184 gridBagConstraints.weightx = 1.0; 185 gridBagConstraints.insets = new java.awt.Insets (0, 0, 0, 4); 186 jPanel5.add(jLabelChartNameVal, gridBagConstraints); 187 188 gridBagConstraints = new java.awt.GridBagConstraints (); 189 gridBagConstraints.gridx = 0; 190 gridBagConstraints.weighty = 1.0; 191 jPanel5.add(jPanel6, gridBagConstraints); 192 193 jPanelChartType.add(jPanel5, java.awt.BorderLayout.SOUTH); 194 195 getContentPane().add(jPanelChartType, java.awt.BorderLayout.CENTER); 196 197 jPanel1.setLayout(new java.awt.GridBagLayout ()); 198 199 jPanel1.setMinimumSize(new java.awt.Dimension (10, 30)); 200 jPanel1.setPreferredSize(new java.awt.Dimension (10, 30)); 201 gridBagConstraints = new java.awt.GridBagConstraints (); 202 gridBagConstraints.weightx = 1.0; 203 jPanel1.add(jPanel2, gridBagConstraints); 204 205 jButtonOk.setText("OK"); 206 jButtonOk.setEnabled(false); 207 jButtonOk.setMaximumSize(new java.awt.Dimension (200, 25)); 208 jButtonOk.setPreferredSize(new java.awt.Dimension (100, 25)); 209 jButtonOk.addActionListener(new java.awt.event.ActionListener () { 210 public void actionPerformed(java.awt.event.ActionEvent evt) { 211 jButtonOkActionPerformed(evt); 212 } 213 }); 214 215 gridBagConstraints = new java.awt.GridBagConstraints (); 216 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 217 gridBagConstraints.weightx = 0.1; 218 gridBagConstraints.insets = new java.awt.Insets (4, 2, 4, 4); 219 jPanel1.add(jButtonOk, gridBagConstraints); 220 221 jButtonCancel.setText("Cancel"); 222 jButtonCancel.addActionListener(new java.awt.event.ActionListener () { 223 public void actionPerformed(java.awt.event.ActionEvent evt) { 224 jButtonCancelActionPerformed(evt); 225 } 226 }); 227 228 gridBagConstraints = new java.awt.GridBagConstraints (); 229 gridBagConstraints.insets = new java.awt.Insets (4, 2, 4, 2); 230 jPanel1.add(jButtonCancel, gridBagConstraints); 231 232 getContentPane().add(jPanel1, java.awt.BorderLayout.SOUTH); 233 234 pack(); 235 } 236 238 private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) { 240 setDialogResult( javax.swing.JOptionPane.CANCEL_OPTION ); 241 this.setVisible(false); 242 this.dispose(); 243 244 } 246 private void jButtonOkActionPerformed(java.awt.event.ActionEvent evt) { 248 setDialogResult( javax.swing.JOptionPane.OK_OPTION ); 249 250 ChartDescriptor cd = (ChartDescriptor)jList1.getSelectedValue(); 251 try { 252 this.setChart( (Chart)(getClass().forName(cd.getImplementationClass())).newInstance() ); 253 } catch (Exception ex) 254 { 255 256 } 257 this.setVisible(true); 258 this.dispose(); 259 260 } 262 public int getDialogResult() { 263 return dialogResult; 264 } 265 266 public void setDialogResult(int dialogResult) { 267 this.dialogResult = dialogResult; 268 } 269 270 private javax.swing.JButton jButtonCancel; 272 private javax.swing.JButton jButtonOk; 273 private javax.swing.JLabel jLabelChartNameVal; 274 private javax.swing.JPanel jPanel1; 275 private javax.swing.JPanel jPanel2; 276 private javax.swing.JPanel jPanel5; 277 private javax.swing.JPanel jPanel6; 278 private javax.swing.JPanel jPanelChartType; 279 281 void selectedChart() 282 { 283 if (jList1.getSelectedIndex() >= 0) 284 { 285 ChartDescriptor cd = (ChartDescriptor)jList1.getSelectedValue(); 286 this.jLabelChartNameVal.setText(cd.getName()); 287 288 this.jButtonOk.setEnabled(true); 289 } 290 else 291 { 292 this.jButtonOk.setEnabled(false); 293 } 294 } 295 296 public Chart getChart() { 297 return chart; 298 } 299 300 public void setChart(Chart chart) { 301 this.chart = chart; 302 } 303 304 public boolean isMultiAxisMode() { 305 return multiAxisMode; 306 } 307 308 public void setMultiAxisMode(boolean multiAxisMode) { 309 this.multiAxisMode = multiAxisMode; 310 311 updateCharts(); 312 } 313 314 public void applyI18n(){ 315 jButtonCancel.setText(I18n.getString("chartSelectionJDialog.buttonCancel","Cancel")); 317 jButtonOk.setText(I18n.getString("chartSelectionJDialog.buttonOk","OK")); 318 ((javax.swing.border.TitledBorder )jPanel5.getBorder()).setTitle( I18n.getString("chartSelectionJDialog.panelBorder.ChartInfo","Chart info") ); 320 321 322 } 323 } 324 | Popular Tags |