Revision 410

View differences:

org.gvsig.chart/tags/org.gvsig.chart-1.0.70/org.gvsig.chart.main/src/main/resources/README.txt
1
Put into this folder the resources needed by your classes.
2

  
3
This folder is added to the classpath, so you can load any resources 
4
through the ClassLoader.
5

  
6
By default, in this folder you can find an example of log4j configuration,
7
prepared to log messages through the console, so logging works when you
8
run your classes.
0 9

  
org.gvsig.chart/tags/org.gvsig.chart-1.0.70/org.gvsig.chart.main/src/main/resources/log4j.xml
1
<?xml version="1.0" encoding="ISO-8859-1" ?>
2
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
3

  
4
<!-- 
5
Log4J configuration file for unit tests execution.
6
 -->
7
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
8

  
9
	<!-- Appender configuration to show logging messages through the console -->
10
	<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
11
		<layout class="org.apache.log4j.PatternLayout">
12
			<param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-5p [%c{2}.%M()]\n  %m%n" />
13
		</layout>
14
	</appender>
15

  
16
	<!-- 
17
	Activate logging messages of DEBUG level of higher only for the
18
	org.gvsig.tools packages.
19
	You can put full classes names or packages instead, to configure
20
	logging for all the classes and subpackages of the package.
21
	-->
22
	<category name="org.gvsig.tools">
23
		<priority value="DEBUG" />
24
	</category>
25
	<category name="org.gvsig.construc">
26
		<priority value="DEBUG" />
27
	</category>
28

  
29
	<!-- 
30
	By default, show only logging messages of INFO level or higher, 
31
	through the previously configured CONSOLE appender. 
32
	-->
33
	<root>
34
		<priority value="INFO" />
35
		<appender-ref ref="CONSOLE" />
36
	</root>
37
</log4j:configuration>
0 38

  
org.gvsig.chart/tags/org.gvsig.chart-1.0.70/org.gvsig.chart.main/src/main/java/org/gvsig/chart/main/MainContext.java
1
package org.gvsig.chart.main;
2

  
3
import org.gvsig.chart.ChartProperties;
4
import org.gvsig.chart.model.DefaultChartDataSet;
5
import org.gvsig.chart.model.variables.ObservableUsedChartServices;
6
import org.gvsig.tools.observer.Observable;
7
import org.gvsig.tools.observer.Observer;
8

  
9
public class MainContext implements Observable{
10

  
11
	private ObservableUsedChartServices<ChartProperties> chartProperties;
12
	private Main mainDocument; 
13
	private DefaultChartDataSet dataset;
14
	
15
	public MainContext(Main main) {
16
		chartProperties = new ObservableUsedChartServices<ChartProperties>(null);
17
		mainDocument=main;
18
		dataset = mainDocument.createDataSet(mainDocument.fields[0],mainDocument.fields[1],mainDocument.fields[2]);
19
	}
20
	
21
	public void addObserver(Observer o) {
22
		// TODO Auto-generated method stub
23
		
24
	}
25

  
26
	public void deleteObserver(Observer o) {
27
		// TODO Auto-generated method stub
28
		
29
	}
30

  
31
	public void deleteObservers() {
32
		// TODO Auto-generated method stub
33
		
34
	}
35
	
36
	public ObservableUsedChartServices<ChartProperties> getChartProperties() {
37
		return chartProperties;
38
	}
39

  
40
	public Main getMainDocument() {
41
		return mainDocument;
42
	}
43

  
44
//	public void setDataset(DefaultChartDataSet dataset) {
45
//		this.dataset = dataset;
46
//	}
47

  
48
	public DefaultChartDataSet getDataset() {
49
		return dataset;
50
	}
51

  
52
    
53
}
0 54

  
org.gvsig.chart/tags/org.gvsig.chart-1.0.70/org.gvsig.chart.main/src/main/java/org/gvsig/chart/main/DefaultDataPropertiesPanel.java
1
package org.gvsig.chart.main;
2

  
3
import java.awt.GridBagConstraints;
4
import java.awt.GridBagLayout;
5
import java.awt.Insets;
6
import java.awt.event.ActionEvent;
7
import java.awt.event.ActionListener;
8
import java.util.ArrayList;
9

  
10
import javax.swing.JButton;
11
import javax.swing.JComboBox;
12
import javax.swing.JLabel;
13
import javax.swing.SwingConstants;
14

  
15
import org.gvsig.chart.ChartLocator;
16
import org.gvsig.chart.ChartProperties;
17
import org.gvsig.chart.lib.spi.ChartServiceManager;
18
import org.gvsig.chart.main.panels.ChartUsedFieldPropertiesPanel;
19
import org.gvsig.chart.main.utils.ChartJPanel;
20
import org.gvsig.chart.model.variables.ObservableUsedChartServices;
21
import org.gvsig.chart.model.variables.RequiredField;
22
import org.gvsig.chart.swing.ChartSwingLocator;
23
import org.gvsig.chart.swing.spi.ChartSwingServiceManager;
24

  
25
public class DefaultDataPropertiesPanel extends ChartJPanel{
26

  
27
	/**
28
	 * 
29
	 */
30
	private static final long serialVersionUID = 3973104135478200344L;
31
	
32
	private ArrayList<JComboBox> cbos = new ArrayList<JComboBox>();
33
	private JButton backButton; 
34
	private JButton FinishButton;
35
	private JButton cancelButton;
36
	
37
	private ChartUsedFieldPropertiesPanel previousPanel;
38
	private ChartServiceManager serviceManager;
39
	private ChartSwingServiceManager swingManager;
40
	
41
	public DefaultDataPropertiesPanel(ChartProperties props, ChartUsedFieldPropertiesPanel chartUsedFieldPropertiesPanel) {
42
		
43
		this.previousPanel = chartUsedFieldPropertiesPanel;
44
		
45
		serviceManager = ChartLocator.getServiceManager();
46
		swingManager = ChartSwingLocator.getSwingManager();
47
		
48
		GridBagLayout gridBagLayout = new GridBagLayout();
49
		setLayout(gridBagLayout);
50
		
51
		JLabel lblChartDataDefinition = new JLabel("Chart Data Definition");
52
		GridBagConstraints gbc_lblChartDataDefinition = new GridBagConstraints();
53
		gbc_lblChartDataDefinition.gridwidth = 4;
54
		gbc_lblChartDataDefinition.anchor = GridBagConstraints.WEST;
55
		gbc_lblChartDataDefinition.insets = new Insets(0, 0, 5, 0);
56
		gbc_lblChartDataDefinition.gridx = 0;
57
		gbc_lblChartDataDefinition.gridy = 0;
58
		add(lblChartDataDefinition, gbc_lblChartDataDefinition);
59
		
60
//		JLabel lblNewLabel = new JLabel("Tabla");
61
//		add(lblNewLabel);
62
//		JComboBox cboTable = new JComboBox();
63
//		add(cboTable);
64
		
65
		int i = 0;
66
		for (i = 0; i < props.getRequiredFields().size(); i++) {
67
//			RequiredField f = props.getRequiredFields().get(i);
68
//			JLabel lbl = new JLabel(f.getDescription());
69
//			add(lbl);
70
//			JComboBox cbo = new JComboBox();
71
//			cbo.setName("cbo" + f.getName());
72
//			cbos.add(cbo);
73
//			add(cbo);
74
				
75
			RequiredField f = props.getRequiredFields().get(i);
76
			JLabel lblNewLabel = new JLabel(f.getDescription());
77
			GridBagConstraints gbc_lblNewLabel = new GridBagConstraints();
78
			gbc_lblNewLabel.fill = GridBagConstraints.BOTH;
79
			gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5);
80
			gbc_lblNewLabel.gridx = 0;
81
			gbc_lblNewLabel.gridy = 1+i;
82
			add(lblNewLabel, gbc_lblNewLabel);
83
			JComboBox cboTable = new JComboBox();
84
			GridBagConstraints gbc_cboTable = new GridBagConstraints();
85
			gbc_cboTable.gridwidth = 3;
86
			gbc_cboTable.insets = new Insets(0, 0, 5, 0);
87
			gbc_cboTable.fill = GridBagConstraints.BOTH;
88
			gbc_cboTable.gridx = 1;
89
			gbc_cboTable.gridy = 1+i;
90
			add(cboTable, gbc_cboTable);
91
			
92
			cbos.add(cboTable);
93
		}
94
		
95
		backButton = new JButton("<  Back");
96
		backButton.setHorizontalAlignment(SwingConstants.LEFT);
97
		GridBagConstraints gbc_backButton = new GridBagConstraints();
98
		gbc_backButton.anchor = GridBagConstraints.EAST;
99
		gbc_backButton.insets = new Insets(0, 0, 0, 5);
100
		gbc_backButton.gridx = 1;
101
		gbc_backButton.gridy = 3+i;
102
		add(backButton, gbc_backButton);
103
		
104
		FinishButton = new JButton("Finish");
105
		GridBagConstraints gbc_FinishButton = new GridBagConstraints();
106
		gbc_FinishButton.insets = new Insets(0, 0, 0, 5);
107
		gbc_FinishButton.gridx = 2;
108
		gbc_FinishButton.gridy = 3+i;
109
		add(FinishButton, gbc_FinishButton);
110
		
111
		cancelButton = new JButton("Cancel");
112
		GridBagConstraints gbc_cancelButton = new GridBagConstraints();
113
		gbc_cancelButton.gridx = 3;
114
		gbc_cancelButton.gridy = 3+i;
115
		add(cancelButton, gbc_cancelButton);
116
		
117
		createButtons();
118
	}
119
	
120
	private void createButtons(){
121
		backButton.addActionListener(new ActionListener() {
122
			public void actionPerformed(ActionEvent e) {
123
				backForm();
124
			}
125
		});
126
		
127
		cancelButton.addActionListener(new ActionListener() {
128
			public void actionPerformed(ActionEvent e) {
129
				cancelForm();
130
			}
131
		});
132
		
133
		FinishButton.addActionListener(new ActionListener() {
134
			public void actionPerformed(ActionEvent e) {
135
				finishForm();
136
			}
137
		});
138
	}
139
	
140
	private void cancelForm() {
141
		this.setVisible(false);
142
		this.getParentWindow().setVisible(false);
143
	}
144
	
145
	private void finishForm() {
146
		this.setVisible(false);
147
		this.getParentWindow().setVisible(false);
148
		
149
		if(validateValues()){
150
			this.getParametersToChartProperties();
151
			
152
			ObservableUsedChartServices<ChartProperties> properties = this.getPreviousPanel().getMainContext().getChartProperties();
153
			if(this.getPreviousPanel().getPreviousChartProperties()!=null){
154
				int index = properties.indexOf(this.getPreviousPanel().getPreviousChartProperties());
155
				if(index != -1){
156
					properties.set(index, this.getPreviousPanel().getChartProperties());
157
				}
158
			}else{
159
				properties.add(this.getPreviousPanel().getChartProperties());
160
			}
161
			
162
//			// TODO Provisional
163
//			try {
164
//				ChartProperties props_overlay = serviceManager.getChartManager()
165
//				.createProperties("OverlayChart");
166
//				
167
//				ChartService service_overlay = serviceManager.getChartManager()
168
//				.createChart(props_overlay);
169
//	
170
//				ChartService service_chart = serviceManager.getChartManager()
171
//				.createChart(this.chartProperties);
172
//				
173
//				service_chart.setChartDataSet(((AbstractChart) service_chart).createDataSet());
174
//				
175
//				ArrayList<ChartService> charts = new ArrayList<ChartService>();
176
//				charts.add(service_chart);
177
//	
178
//				((OverlayChartProperties) props_overlay).setCharts(charts);
179
//	
180
//				ChartSwingPanel panel = swingManager.getChartSwingManager()
181
//						.createPanel(props_overlay);
182
//				panel.setChartService(service_overlay);
183
//	
184
//				panel.setPreferredSize(new Dimension(800, 400));
185
//				swingManager
186
//						.getChartSwingManager()
187
//						.getWindowManager()
188
//						.showWindow(panel, "Chart window",
189
//								ChartWindowManager.MODE_WINDOW);
190
//				
191
//			} catch (ServiceException e) {
192
//				// TODO Auto-generated catch block
193
//				e.printStackTrace();
194
//			}
195
		}else{
196
			
197
		}
198

  
199
		
200
	}
201
	
202
	/**
203
	 * Check if the values have the correct format
204
	 * @return boolean
205
	 */
206
	private boolean validateValues() {
207
		// TODO Auto-generated method stub
208
		return true;
209
	}
210

  
211
	// Rellena el ChartProperties con el contenido de los 2 paneles
212
	private void getParametersToChartProperties() {
213
		this.getPreviousPanel().getChartProperties();
214
		this.getChartProperties();
215
	}
216

  
217
	private void backForm() {
218
		this.setVisible(false);
219
		this.getParentWindow().setVisible(false);
220
		
221
		this.getPreviousPanel().setVisible(true);
222
		this.getPreviousPanel().getParentWindow().setVisible(true);
223
		
224
	}
225
	
226
	public void getChartProperties(){
227
		ChartProperties chartProperties = this.getPreviousPanel().getChartProperties();
228
		for (int i = 0; i < chartProperties.getRequiredFields().size(); i++) {
229
			RequiredField f = chartProperties.getRequiredFields().get(i);
230
			JComboBox cbo = cbos.get(i);
231
			f.setValue(cbo.getSelectedItem().toString());
232
		}
233
	}
234

  
235
	public ChartUsedFieldPropertiesPanel getPreviousPanel() {
236
		return previousPanel;
237
	}
238
}
0 239

  
org.gvsig.chart/tags/org.gvsig.chart-1.0.70/org.gvsig.chart.main/src/main/java/org/gvsig/chart/main/package.html
1
<?xml version="1.0" encoding="UTF-8" ?>
2
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
<html xmlns="http://www.w3.org/1999/xhtml">
4
<head>
5
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
6
<title>org.gvsig.construc package documentation</title>
7
</head>
8
<body>
9

  
10
	<p>Construc library testing and demo application.</p>
11

  
12
</body>
13
</html>
0 14

  
org.gvsig.chart/tags/org.gvsig.chart-1.0.70/org.gvsig.chart.main/src/main/java/org/gvsig/chart/main/utils/CheckBoxRenderer.java
1
package org.gvsig.chart.main.utils;
2

  
3
import java.awt.Component;
4

  
5
import javax.swing.JCheckBox;
6
import javax.swing.JLabel;
7
import javax.swing.JTable;
8
import javax.swing.table.TableCellRenderer;
9

  
10
public class CheckBoxRenderer extends JCheckBox implements TableCellRenderer {
11

  
12
    /**
13
	 * 
14
	 */
15
	private static final long serialVersionUID = 3586418802127664068L;
16

  
17
	public CheckBoxRenderer() {
18
      setHorizontalAlignment(JLabel.CENTER);
19
    }
20

  
21
    public Component getTableCellRendererComponent(JTable table, Object value,
22
        boolean isSelected, boolean hasFocus, int row, int column) {
23
      if (isSelected) {
24
        setForeground(table.getSelectionForeground());
25
        //super.setBackground(table.getSelectionBackground());
26
        setBackground(table.getSelectionBackground());
27
      } else {
28
        setForeground(table.getForeground());
29
        setBackground(table.getBackground());
30
      }
31
      setSelected((value != null && ((Boolean) value).booleanValue()));
32
      return this;
33
    }
34
}
35

  
0 36

  
org.gvsig.chart/tags/org.gvsig.chart-1.0.70/org.gvsig.chart.main/src/main/java/org/gvsig/chart/main/utils/ChartEntry.java
1
package org.gvsig.chart.main.utils;
2

  
3
import javax.swing.ImageIcon;
4

  
5
import org.gvsig.andami.PluginServices;
6
import org.gvsig.chart.swing.ChartSwingLocator;
7
import org.gvsig.chart.swing.spi.panels.ChartServiceTypePanel;
8
import org.gvsig.fmap.IconThemeHelper;
9

  
10
/**
11
 * Clase que define una entrada de la lista de Charts registrados.
12
 * Contiene el identificador, el nombre, icono y la preview.
13
 */
14
public class ChartEntry {
15
	  private final String id;
16
	  private final String title;
17
	  private ImageIcon icon;
18
	  private ImageIcon image;
19

  
20
	  public ChartEntry(String id, String title) {
21
	    this.id = id;
22
		this.title = title;
23
	  }
24

  
25
	  public String getChartType() {
26
	    return id;
27
	  }
28
	  
29
	  public String getChartPanelType() {
30
	    return id + "Panel";
31
	  }
32
	  
33
	  public String getTitle() {
34
		    return title;
35
	  }
36

  
37
	  public ImageIcon getIcon() {
38
	    if (icon == null) {
39
	    	ChartServiceTypePanel panel = ChartSwingLocator.getSwingManager().getSwingServices().get(this.getChartPanelType());
40
	    	if(panel!=null)
41
	    		icon = panel.getChartIcon();
42
	    }
43
	    if (icon==null)
44
	    	icon = IconThemeHelper.getImageIcon("no-chart-icon");
45
	    return icon;
46
	  }
47
	  
48

  
49
	public String toString() {
50
		    return title;
51
		  }
52
	  
53
	  public ImageIcon getExampleImage() {
54
		    if (image == null) {
55
		    	ChartServiceTypePanel panel = ChartSwingLocator.getSwingManager().getSwingServices().get(this.getChartPanelType());
56
		    	if(panel!=null)
57
		    		image = panel.getChartExample();
58
		    }
59
		    if (image==null)
60
		    	image = IconThemeHelper.getImageIcon("no-chart-example");
61
		    return image;
62
	  }
63
}
0 64

  
org.gvsig.chart/tags/org.gvsig.chart-1.0.70/org.gvsig.chart.main/src/main/java/org/gvsig/chart/main/utils/ChartCellRenderer.java
1
package org.gvsig.chart.main.utils;
2

  
3
import java.awt.Color;
4
import java.awt.Component;
5

  
6
import javax.swing.JLabel;
7
import javax.swing.JList;
8
import javax.swing.JPanel;
9
import javax.swing.JTable;
10
import javax.swing.ListCellRenderer;
11
import javax.swing.table.TableCellRenderer;
12

  
13

  
14
public class ChartCellRenderer extends JLabel implements ListCellRenderer, TableCellRenderer {
15
	  /**
16
	 * 
17
	 */
18
	private static final long serialVersionUID = 1493992436327160367L;
19
	private final Color HIGHLIGHT_COLOR = new Color(195, 212, 232);
20
	private JPanel parentPanel;
21

  
22
	  public ChartCellRenderer(JPanel parentPanel) {
23
	    setOpaque(true);
24
	    setIconTextGap(12);
25
	    this.parentPanel = parentPanel;
26
	  } 
27
	  		  
28
	  public Component getListCellRendererComponent(JList list, Object value,
29
	      int index, boolean isSelected, boolean cellHasFocus) {
30
	    ChartEntry entry = (ChartEntry) value;
31
	    setText(entry.getTitle());
32
	    setIcon(entry.getIcon());
33
	    if (isSelected) {
34
	      setBackground(HIGHLIGHT_COLOR);
35
	      setForeground(Color.black);
36
	    } else {
37
	      setBackground(Color.white);
38
	      setForeground(Color.black);
39
	    }
40
	    return this;
41
	  }
42

  
43
	public JPanel getParentPanel() {
44
		return parentPanel;
45
	}
46

  
47
	public Component getTableCellRendererComponent(JTable table, Object value,
48
			boolean isSelected, boolean arg3, int arg4, int arg5) {
49
		if(value==null)
50
			return null;
51
		ChartEntry entry = (ChartEntry) value;
52
		    setText(entry.getTitle());
53
		    setIcon(entry.getIcon());
54
		    if (isSelected) {
55
		      setBackground(HIGHLIGHT_COLOR);
56
		      setForeground(Color.black);
57
		    } else {
58
		      setBackground(Color.white);
59
		      setForeground(Color.black);
60
		    }
61
		    return this;
62
	}
63
}
0 64

  
org.gvsig.chart/tags/org.gvsig.chart-1.0.70/org.gvsig.chart.main/src/main/java/org/gvsig/chart/main/utils/ChartJDialog.java
1
package org.gvsig.chart.main.utils;
2

  
3
import java.awt.event.ComponentEvent;
4
import java.awt.event.ComponentListener;
5

  
6
import javax.swing.JDialog;
7
import javax.swing.JPanel;
8

  
9
public class ChartJDialog extends JDialog implements ComponentListener{
10

  
11
	/**
12
	 * 
13
	 */
14
	private static final long serialVersionUID = -1850855026936065122L;
15

  
16
	private ChartJPanel panel;
17
	
18
	public ChartJDialog(ChartJPanel panel){
19
		this.panel = panel;
20
		this.panel.setParentWindow(this);
21
		panel.addComponentListener(this);
22
		getContentPane().add(panel);
23
		setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
24
		setModal(true);
25
		
26
		pack();
27
		setVisible(true);
28
	}
29
	
30
	public void componentHidden(ComponentEvent e) {
31
		this.dispose();
32
	}
33

  
34
	public void componentMoved(ComponentEvent e) {
35
		// TODO Auto-generated method stub
36
		
37
	}
38

  
39
	public void componentResized(ComponentEvent e) {
40
		// TODO Auto-generated method stub
41
		
42
	}
43

  
44
	public void componentShown(ComponentEvent e) {
45
		// TODO Auto-generated method stub
46
		
47
	}
48

  
49
	public JPanel getContentPanel() {
50
		return panel;
51
	}
52

  
53
}
0 54

  
org.gvsig.chart/tags/org.gvsig.chart-1.0.70/org.gvsig.chart.main/src/main/java/org/gvsig/chart/main/utils/ChartJPanel.java
1
package org.gvsig.chart.main.utils;
2

  
3
import javax.swing.JPanel;
4

  
5
public class ChartJPanel extends JPanel{
6

  
7
	/**
8
	 * 
9
	 */
10
	private static final long serialVersionUID = 1L;
11
	private ChartJDialog chartParentWindow;
12

  
13
	public void setParentWindow(ChartJDialog jDialog){
14
		this.chartParentWindow = jDialog;
15
	}
16
	
17
	public ChartJDialog getParentWindow(){
18
		return chartParentWindow;
19
	}
20
}
0 21

  
org.gvsig.chart/tags/org.gvsig.chart-1.0.70/org.gvsig.chart.main/src/main/java/org/gvsig/chart/main/panels/ChartPropertiesPanel.java
1
package org.gvsig.chart.main.panels;
2

  
3
import java.awt.Dimension;
4
import java.awt.GridBagConstraints;
5
import java.awt.GridBagLayout;
6
import java.awt.Insets;
7
import java.awt.event.ActionEvent;
8
import java.awt.event.ActionListener;
9
import java.awt.event.MouseEvent;
10
import java.util.ArrayList;
11
import java.util.Iterator;
12
import java.util.List;
13

  
14
import javax.swing.DefaultListModel;
15
import javax.swing.ImageIcon;
16
import javax.swing.JButton;
17
import javax.swing.JLabel;
18
import javax.swing.JList;
19
import javax.swing.JPanel;
20
import javax.swing.JScrollPane;
21
import javax.swing.JTable;
22
import javax.swing.ListSelectionModel;
23
import javax.swing.event.ListSelectionEvent;
24
import javax.swing.event.ListSelectionListener;
25
import javax.swing.table.DefaultTableModel;
26

  
27
import org.gvsig.andami.PluginServices;
28
import org.gvsig.andami.ui.mdiManager.IWindow;
29
import org.gvsig.andami.ui.mdiManager.WindowInfo;
30
import org.gvsig.chart.ChartLocator;
31
import org.gvsig.chart.ChartProperties;
32
import org.gvsig.chart.ChartService;
33
import org.gvsig.chart.base.overlay.OverlayChartProperties;
34
import org.gvsig.chart.lib.spi.ChartServiceManager;
35
import org.gvsig.chart.main.MainContext;
36
import org.gvsig.chart.main.utils.ChartCellRenderer;
37
import org.gvsig.chart.main.utils.ChartEntry;
38
import org.gvsig.chart.main.utils.ChartJDialog;
39
import org.gvsig.chart.main.utils.CheckBoxRenderer;
40
import org.gvsig.chart.model.DefaultChartDataSet;
41
import org.gvsig.chart.model.variables.ObservableUsedChartServices;
42
import org.gvsig.chart.swing.ChartSwingLocator;
43
import org.gvsig.chart.swing.ChartSwingPanel;
44
import org.gvsig.chart.swing.ChartWindowManager;
45
import org.gvsig.chart.swing.spi.ChartSwingServiceManager;
46
import org.gvsig.fmap.IconThemeHelper;
47
import org.gvsig.tools.service.ServiceException;
48
import javax.swing.border.LineBorder;
49
import java.awt.Color;
50

  
51
public class ChartPropertiesPanel extends JPanel implements IWindow, ActionListener, ListSelectionListener{
52

  
53
	/**
54
	 * 
55
	 */
56
	private static final long serialVersionUID = -301224990996378683L;
57
    private MainContext chartDocument; 
58
    private JButton accept;
59
	private JButton cancel;
60
    
61
	private String selectedChartType = null;
62

  
63
	private JPanel panel_chartType = null;
64

  
65
	private JLabel previewImageLabel = new JLabel();	
66
	private JLabel chartOptionsLabel;
67
	
68
	private DefaultListModel listModel;
69
	
70
	private JButton addButton;
71
	private JTable table;
72
	private DefaultTableModel tableModel;
73
	private JButton editButton;
74
	private JButton deleteButton;
75
	
76
	private ChartPropertiesPanelObserver<ChartProperties> chartPropertiesObserver;
77
	private JList list;
78
	private ChartSwingServiceManager swingManager;
79
	private ChartServiceManager serviceManager;
80
	private JButton upButton;
81
	private JButton downButton;
82
	private JLabel lblChartPreview;
83
	private JPanel previewPanel;
84
	
85
	public ChartPropertiesPanel(MainContext doc) {
86
		serviceManager = ChartLocator.getServiceManager();
87
		swingManager = ChartSwingLocator.getSwingManager();
88
		
89
		chartDocument = doc;
90
		listModel = getCharts();
91
		
92
		chartPropertiesObserver = new ChartPropertiesPanelObserver<ChartProperties>(this);
93
		doc.getChartProperties().registerObserver(chartPropertiesObserver);
94
		
95
		createMainPanel();
96
		createButtonPanelEvents();
97
        
98
		initializeChartList();
99
		initialize();
100
	}
101
	
102
	private void createMainPanel(){
103
		GridBagLayout gridBagLayout = new GridBagLayout();
104
		gridBagLayout.columnWidths = new int[]{303, 0, 0, 445, 102};
105

  
106
		setLayout(gridBagLayout);
107
		
108
		lblChartPreview = new JLabel("Chart preview");
109
		GridBagConstraints gbc_lblChartPreview = new GridBagConstraints();
110
		gbc_lblChartPreview.gridwidth = 4;
111
		gbc_lblChartPreview.anchor = GridBagConstraints.WEST;
112
		gbc_lblChartPreview.insets = new Insets(0, 0, 5, 5);
113
		gbc_lblChartPreview.gridx = 0;
114
		gbc_lblChartPreview.gridy = 0;
115
		add(lblChartPreview, gbc_lblChartPreview);
116
		
117
		GridBagConstraints gbc_panel_chartType = new GridBagConstraints();
118
		gbc_panel_chartType.gridheight = 2;
119
		gbc_panel_chartType.insets = new Insets(0, 0, 5, 0);
120
		gbc_panel_chartType.gridy = 1;
121
		gbc_panel_chartType.gridwidth = 5;
122
		gbc_panel_chartType.gridx = 0;
123
		add(getTypePanel(), gbc_panel_chartType);
124
		
125
		accept = new JButton("accept");
126
		GridBagConstraints gbc_accept = new GridBagConstraints();
127
		gbc_accept.anchor = GridBagConstraints.EAST;
128
		gbc_accept.insets = new Insets(0, 0, 0, 5);
129
		gbc_accept.gridx = 3;
130
		gbc_accept.gridy = 4;
131
		add(accept, gbc_accept);
132
		
133
		cancel = new JButton("Cancel");
134
		GridBagConstraints gbc_cancel = new GridBagConstraints();
135
		gbc_cancel.anchor = GridBagConstraints.WEST;
136
		gbc_cancel.gridx = 4;
137
		gbc_cancel.gridy = 4;
138
		add(cancel, gbc_cancel);
139
		
140
	}
141
	
142
	private JPanel getTypePanel(){
143
		if (panel_chartType==null){
144
		panel_chartType = new JPanel();
145
		
146
		GridBagLayout gbl_panel_chartType = new GridBagLayout();
147
		gbl_panel_chartType.columnWidths = new int[]{540, 0, 0, 210, 198, 56, 0};
148
		gbl_panel_chartType.rowHeights = new int[]{0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0};
149
		gbl_panel_chartType.columnWeights = new double[]{1.0, 0.0, 0.0, 1.0, 0.0, 0.0, Double.MIN_VALUE};
150
		gbl_panel_chartType.rowWeights = new double[]{1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
151
		panel_chartType.setLayout(gbl_panel_chartType);
152
		
153
		previewPanel = new JPanel();
154
		previewPanel.setBackground(Color.WHITE);
155
		previewPanel.setBorder(new LineBorder(new Color(0, 0, 0)));
156
		GridBagConstraints gbc_previewPanel = new GridBagConstraints();
157
		gbc_previewPanel.gridheight = 2;
158
		gbc_previewPanel.gridwidth = 6;
159
		gbc_previewPanel.insets = new Insets(0, 0, 5, 5);
160
		gbc_previewPanel.fill = GridBagConstraints.BOTH;
161
		gbc_previewPanel.gridx = 0;
162
		gbc_previewPanel.gridy = 0;
163
		panel_chartType.add(previewPanel, gbc_previewPanel);
164
		
165
		
166
		chartOptionsLabel= new JLabel("Chart variables");
167
		GridBagConstraints gbc_lblNewLabel_3 = new GridBagConstraints();
168
		gbc_lblNewLabel_3.anchor = GridBagConstraints.WEST;
169
		gbc_lblNewLabel_3.gridwidth = 4;
170
		gbc_lblNewLabel_3.insets = new Insets(0, 0, 5, 5);
171
		gbc_lblNewLabel_3.gridx = 0;
172
		gbc_lblNewLabel_3.gridy = 3;
173
		panel_chartType.add(chartOptionsLabel, gbc_lblNewLabel_3);
174
		
175
		table = new JTable(){
176
        	/**
177
			 * 
178
			 */
179
			private static final long serialVersionUID = -352323096347454258L;
180
			
181
			public boolean isCellEditable(int rowIndex, int colIndex) {
182
				if(colIndex==0)
183
					return true;
184
				return false; //Disallow the editing of any cell
185
			}
186
			
187
			public String getToolTipText(MouseEvent e) {
188
                String tip = null;
189
                List<ChartProperties> usedFields = getDocument().getChartProperties();
190
            	
191
                java.awt.Point p = e.getPoint();
192
                int rowIndex = rowAtPoint(p);
193
                int colIndex = columnAtPoint(p);
194
                int realColumnIndex = convertColumnIndexToModel(colIndex);
195

  
196
                if (realColumnIndex == 0) { //Sport column
197
                    tip = usedFields.get(rowIndex).getChartName();
198
                }
199
                return tip;
200
            }
201
        };
202
		
203
				GridBagConstraints gbc_table = new GridBagConstraints();
204
				gbc_table.gridheight = 6;
205
				gbc_table.gridwidth = 5;
206
				gbc_table.insets = new Insets(0, 0, 0, 5);
207
				gbc_table.fill = GridBagConstraints.BOTH;
208
				gbc_table.gridx = 0;
209
				gbc_table.gridy = 4;
210
				//panel_chartType.add(table, gbc_table);
211
				JScrollPane scrollPane = new JScrollPane(table);
212
				panel_chartType.add(scrollPane, gbc_table);
213
				table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
214
				
215
				upButton = new JButton("");
216
				upButton.setIcon(new ImageIcon(ChartPropertiesPanel.class.getResource("/icons/arrow_up.png")));
217
				GridBagConstraints gbc_upButton = new GridBagConstraints();
218
				gbc_upButton.insets = new Insets(0, 0, 5, 0);
219
				gbc_upButton.gridx = 5;
220
				gbc_upButton.gridy = 4;
221
				panel_chartType.add(upButton, gbc_upButton);
222
				
223
				downButton = new JButton("");
224
				downButton.setIcon(new ImageIcon(ChartPropertiesPanel.class.getResource("/icons/arrow_down.png")));
225
				GridBagConstraints gbc_downButton = new GridBagConstraints();
226
				gbc_downButton.insets = new Insets(0, 0, 5, 0);
227
				gbc_downButton.gridx = 5;
228
				gbc_downButton.gridy = 5;
229
				panel_chartType.add(downButton, gbc_downButton);
230
		
231
		
232
				addButton = new JButton("");
233
				addButton.setIcon(new ImageIcon(ChartPropertiesPanel.class.getResource("/icons/add.png")));
234
				GridBagConstraints gbc_addButton = new GridBagConstraints();
235
				gbc_addButton.insets = new Insets(0, 0, 5, 0);
236
				gbc_addButton.gridx = 5;
237
				gbc_addButton.gridy = 7;
238
				panel_chartType.add(addButton, gbc_addButton);
239
		
240
		editButton = new JButton("");
241
		editButton.setIcon(new ImageIcon(ChartPropertiesPanel.class.getResource("/icons/edit.png")));
242
		GridBagConstraints gbc_editButton = new GridBagConstraints();
243
		gbc_editButton.insets = new Insets(0, 0, 5, 0);
244
		gbc_editButton.gridx = 5;
245
		gbc_editButton.gridy = 8;
246
		panel_chartType.add(editButton, gbc_editButton);
247
		
248
		deleteButton = new JButton("");
249
		deleteButton.setIcon(new ImageIcon(ChartPropertiesPanel.class.getResource("/icons/delete.png")));
250
		GridBagConstraints gbc_deleteButton = new GridBagConstraints();
251
		gbc_deleteButton.anchor = GridBagConstraints.NORTH;
252
		gbc_deleteButton.gridx = 5;
253
		gbc_deleteButton.gridy = 9;
254
		panel_chartType.add(deleteButton, gbc_deleteButton);
255
		}
256
		return panel_chartType;
257
		
258
	}
259
	
260
	/**
261
	 * 
262
	 * Inicializa los elementos para el manejo de los Chart
263
	 */
264
	private void initialize() {
265
		String[] colName = {"Visible", "Variable (units)", "Chart Type", "Render type" };
266
		    
267
	    tableModel = (DefaultTableModel) table.getModel();
268
	    tableModel.setColumnIdentifiers(colName); 
269
	    
270
	    fillTableData();
271
	    table.getColumnModel().getColumn(0).setPreferredWidth(45);
272
	    table.getColumnModel().getColumn(2).setPreferredWidth(150);
273
	    table.getColumnModel().getColumn(3).setPreferredWidth(150);
274

  
275
	    
276
	    table.getColumnModel().getColumn(0).setCellRenderer(new CheckBoxRenderer());
277
	    table.getColumnModel().getColumn(2).setCellRenderer(new ChartCellRenderer(this));
278

  
279

  
280
	}
281
	
282
	public void fillTableData(){
283
		List<ChartProperties> chartProperties = getDocument().getChartProperties();
284
		removeTable();
285
	    for (int i = 0; i < chartProperties.size(); i++) {
286
	        Object[] data = new Object[4];
287
	        	data[0] = true;
288
	            data[1] = chartProperties.get(i).getChartTitle();
289
	            data[2] = getChartCellType(chartProperties.get(i).getChartType());
290
	            data[3] = chartProperties.get(i).getChartRenderer();
291

  
292
	        ((DefaultTableModel) tableModel).addRow(data);
293
	    }
294
	  //  tableModel.fireTableDataChanged();
295
	    table.revalidate();
296
	    table.repaint();
297
	}
298
	
299
	private ChartEntry getChartCellType(String type){
300
		for(int i=0;i<listModel.getSize(); i++){
301
			ChartEntry entry = (ChartEntry)listModel.get(i);
302
			String entryID = entry.getChartType().toString();
303
			if(entryID.compareToIgnoreCase(type.toString())==0)
304
				return entry;
305
		}
306
		return null;
307
	}
308

  
309
	public void removeTable(){
310
		int numRows = tableModel.getRowCount();
311
		for(int i=numRows-1; i>=0; i--){
312
			tableModel.removeRow(i);
313
		}
314
	}
315
	
316
	public WindowInfo getWindowInfo() {
317
		WindowInfo m_viewinfo=new WindowInfo(WindowInfo.MODALDIALOG | WindowInfo.RESIZABLE);
318
   		m_viewinfo.setTitle(PluginServices.getText(this, "propiedades_grafico"));
319
		m_viewinfo.setWidth(1000);
320
		m_viewinfo.setHeight(460);
321
		return m_viewinfo;
322
	}
323

  
324
	public Object getWindowProfile() {
325
		return WindowInfo.PROPERTIES_PROFILE;
326
	}
327

  
328
	public Object getWindowModel() {
329
		return chartDocument;
330
	}
331

  
332
	public String getSelectedChartType(){
333
		return selectedChartType;
334
	}
335
		
336
	/**
337
	 * Crea el panel de la ChartPropertiesPanel usando un dise?o de Abeille
338
	 */
339
	private void createButtonPanelEvents(){
340
		
341
		addButton.addActionListener(new ActionListener() {
342
			public void actionPerformed(ActionEvent e) {
343
				new ChartJDialog(new ChartUsedFieldPropertiesPanel(getDocument()));
344
			}
345
		});
346
		
347
		editButton.addActionListener(new ActionListener() {
348
			public void actionPerformed(ActionEvent e) {
349
				int index = table.getSelectedRow();
350
				if(index != -1){
351
					ChartProperties variable = getDocument().getChartProperties().get(index);
352
					new ChartJDialog(new ChartUsedFieldPropertiesPanel(getDocument(),variable));
353
				}else{
354
					System.out.println("No row selected");
355
				}
356
			}
357
		});
358
		
359
		deleteButton.addActionListener(new ActionListener() {
360
			public void actionPerformed(ActionEvent e) {
361
				int index = table.getSelectedRow();
362
				if(index != -1){
363
					ObservableUsedChartServices<ChartProperties> usedFields = getDocument().getChartProperties();
364
					usedFields.remove(usedFields.get(index));
365
					refreshTableData();
366
				}else{
367
					System.out.println("No row selected");
368
				}
369
			}
370
		});
371
		
372
		upButton.addActionListener(new ActionListener() {
373
			public void actionPerformed(ActionEvent e) {
374
				int index = table.getSelectedRow();
375
				if(index != -1){
376
					if(index > 0){
377
						ChartProperties variable = getDocument().getChartProperties().get(index);
378
						ChartProperties variable_ant = getDocument().getChartProperties().get(index-1);
379
						getDocument().getChartProperties().set(index - 1, variable);
380
						getDocument().getChartProperties().set(index, variable_ant);
381
					}
382
					
383
				}else{
384
					System.out.println("No row selected");
385
				}
386
			}
387
		});
388
		
389
		downButton.addActionListener(new ActionListener() {
390
			public void actionPerformed(ActionEvent e) {
391
				int index = table.getSelectedRow();
392
				if(index != -1){
393
					if(index < getDocument().getChartProperties().size()-1){
394
						ChartProperties variable = getDocument().getChartProperties().get(index);
395
						ChartProperties variable_pos = getDocument().getChartProperties().get(index+1);
396
						getDocument().getChartProperties().set(index + 1, variable);
397
						getDocument().getChartProperties().set(index, variable_pos);
398
					}
399
					
400
				}else{
401
					System.out.println("No row selected");
402
				}
403
			}
404
		});
405
		
406
		accept.addActionListener(new ActionListener() {
407
			public void actionPerformed(ActionEvent e) {
408
				acceptForm();
409
			}
410
		});
411
		cancel.addActionListener(new ActionListener() {
412
			public void actionPerformed(ActionEvent arg0) {
413
				cancelForm();
414
			}
415
		});
416

  
417
	}
418
	
419
	private void acceptForm(){
420
		System.out.println("Button accept pressed");
421
		
422
		try {
423
			//Create the overlayChart (base chart where the rest is superposed)
424
			ChartProperties props_overlay = swingManager.getChartSwingManager().getServiceManager().getChartManager().createProperties("OverlayChart");
425
			ChartService service_overlay = serviceManager.getChartManager().createChart(props_overlay);
426
        	
427
			ArrayList<ChartService> charts = new ArrayList<ChartService>();
428
        	
429
        	for(int i = 0; i < tableModel.getRowCount(); i++){
430
        		ChartEntry entry = (ChartEntry) tableModel.getValueAt(i, 3);
431
        		String chartType = entry.getChartType();
432
        		
433
				ChartProperties props = swingManager.getChartSwingManager().getServiceManager().getChartManager().createProperties(chartType);
434
				
435
//				//TODO: provisional para cambiar el render
436
//				if(i%2==0){
437
//					((BarsChartProperties)props).setRendererType("BarRenderer");
438
//				}
439
				
440
						
441
				ChartService service= serviceManager.getChartManager().createChart(props);
442
				
443
				// Create new dataset from the selected fields of the main dataset
444
				String keyField = (String) tableModel.getValueAt(i, 4);
445
				String colField = (String) tableModel.getValueAt(i, 5);
446
				String rowField = (String) tableModel.getValueAt(i, 6);
447
				
448
				Iterator<Object> keys = getDocument().getDataset().getValues(keyField);
449
				Iterator<Object> cols = getDocument().getDataset().getValues(colField);
450
				Iterator<Object> rows = getDocument().getDataset().getValues(rowField);
451
				
452
	        	DefaultChartDataSet dataSet = new DefaultChartDataSet();
453
	        	
454
	        	dataSet.setKeyField(keyField);
455
	        	dataSet.setColumnField(colField);
456
	        	dataSet.setRowField(rowField);
457
	        	
458
	        	dataSet.addData(keyField, keys);
459
	        	dataSet.addData(colField, cols);
460
	        	dataSet.addData(rowField, rows);
461
	        	service.setChartDataSet(dataSet);
462
	        	
463
	        	//Para el primer chart, fijar el Background y los ejes para que lo utilicen los siguientes.
464
//				if(i==0){
465
//					JFreeChart chart = (JFreeChart)service.getInnerChart();
466
//					ChartNumberAxis rangeAxis = new ChartNumberAxis(); 
467
//					rangeAxis.setAxis(chart.getCategoryPlot().getRangeAxis());
468
//					service_overlay.setRangeAxis(rangeAxis);
469
//				}else{
470
//					JFreeChart chart = (JFreeChart)service.getInnerChart();
471
//					chart.getCategoryPlot().setRangeAxis((ValueAxis) service_overlay.getRangeAxis());
472
//				}
473
	        	
474
	        	charts.add(service);
475
        	}
476
        	
477
        	((OverlayChartProperties)props_overlay).setCharts(charts);
478
        	ChartSwingPanel panel = swingManager.getChartSwingManager().createPanel(props_overlay);
479
        	panel.setChartService(service_overlay);
480

  
481
            panel.setPreferredSize(new Dimension(800, 400));
482
            swingManager.getChartSwingManager().getWindowManager().showWindow(panel, "Chart window",
483
                ChartWindowManager.MODE_WINDOW);
484
			
485
			
486
		} catch (ServiceException e) {
487
			// TODO Auto-generated catch block
488
			e.printStackTrace();
489
		}
490
	}
491
	
492
	private void cancelForm(){
493
		System.out.println("Button cancel pressed");
494
		setVisible(false);
495
	}
496
		
497
	private void getPreviewPanel(String type) {
498
		if(type == null){
499
			setPreviewImage(IconThemeHelper.getImageIcon("no-chart-example")); 
500
		}else{
501
			if(!list.isSelectionEmpty()){
502
				ChartEntry entry = (ChartEntry)list.getSelectedValue();
503
				setPreviewImage(entry.getExampleImage());
504
			}else{
505
				setPreviewImage(IconThemeHelper.getImageIcon("no-chart-example"));  
506
			}
507
		}
508
	}
509
	
510
	private void setPreviewImage(ImageIcon image){
511
		previewImageLabel.setIcon(image);
512
		previewImageLabel.revalidate();
513
		previewImageLabel.repaint();
514
	}
515

  
516
	public void actionPerformed(ActionEvent e) {	
517
	}
518
	
519
	public MainContext getDocument(){
520
		return this.chartDocument;
521
	}
522

  
523
	public void refreshTableData() {
524
		table.removeAll();
525
		fillTableData();
526
	}
527

  
528

  
529
	
530
	private void initializeChartList() {
531
//		DefaultListModel charts = getCharts();
532
//		list.setModel(charts);
533
//		list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
534
//		list.setCellRenderer(new ChartCellRenderer(this));
535
//        list.addListSelectionListener(this);
536
//		if(!charts.isEmpty()){
537
//			list.setSelectedIndex(0);
538
////			ChartEntry currentEntry = (ChartEntry)list.getSelectedValue();
539
////			this.setSelectedChartType(currentEntry.getChartType());
540
//		}
541

  
542
	}
543
	
544
	/**
545
	 * Obtiene los tipos de chart registrados
546
	 * @return DefaultListModel listModel
547
	 */
548
	private DefaultListModel getCharts() {
549
	    listModel = new DefaultListModel(); 
550
		List<ChartService> registeredServices = this.getDocument().getMainDocument().getServiceManager().getChartServices();
551
	        for(int i=0; i<registeredServices.size();i++){
552
	        	String auxType = registeredServices.get(i).getChartType();
553
	        	String auxName = registeredServices.get(i).getChartName();
554
	        	
555
	        	listModel.addElement(new ChartEntry(auxType, auxName));
556
	        }  
557
				
558
		return listModel;
559
	}
560

  
561
	
562
	/**
563
	 * Manejador de eventos para que cuando se selecciona un tipo de gr?fica
564
	 * actualice la preview y cargue el panel con los subtipos correspondientes
565
	 */
566
	public void valueChanged(ListSelectionEvent evt) {
567
		this.setSelectedChartType(((ChartEntry)list.getSelectedValue()).getChartType());
568
	}
569
	
570
	public void setSelectedChartType(String type){
571
		this.selectedChartType = type;
572
		this.getPreviewPanel(type);
573
		//this.getSubtypePanel(type);
574
	}
575
	
576
}
577

  
0 578

  
org.gvsig.chart/tags/org.gvsig.chart-1.0.70/org.gvsig.chart.main/src/main/java/org/gvsig/chart/main/panels/ChartUsedFieldPropertiesPanel.java
1
package org.gvsig.chart.main.panels;
2

  
3
import java.awt.Color;
4
import java.awt.Dimension;
5
import java.awt.GridBagConstraints;
6
import java.awt.GridBagLayout;
7
import java.awt.Insets;
8
import java.awt.event.ActionEvent;
9
import java.awt.event.ActionListener;
10
import java.util.HashMap;
11
import java.util.List;
12
import java.util.Map;
13

  
14
import javax.swing.DefaultListModel;
15
import javax.swing.JButton;
16
import javax.swing.JLabel;
17
import javax.swing.JList;
18
import javax.swing.JPanel;
19
import javax.swing.JTextField;
20
import javax.swing.JTextPane;
21
import javax.swing.ListSelectionModel;
22
import javax.swing.event.ListSelectionEvent;
23
import javax.swing.event.ListSelectionListener;
24

  
25
import org.gvsig.andami.PluginServices;
26
import org.gvsig.andami.ui.mdiManager.IWindow;
27
import org.gvsig.andami.ui.mdiManager.WindowInfo;
28
import org.gvsig.chart.ChartLocator;
29
import org.gvsig.chart.ChartProperties;
30
import org.gvsig.chart.ChartService;
31
import org.gvsig.chart.lib.spi.ChartServiceManager;
32
import org.gvsig.chart.main.DefaultDataPropertiesPanel;
33
import org.gvsig.chart.main.MainContext;
34
import org.gvsig.chart.main.utils.ChartCellRenderer;
35
import org.gvsig.chart.main.utils.ChartEntry;
36
import org.gvsig.chart.main.utils.ChartJDialog;
37
import org.gvsig.chart.main.utils.ChartJPanel;
38
import org.gvsig.chart.swing.ChartSwingLocator;
39
import org.gvsig.chart.swing.spi.ChartPanel;
40
import org.gvsig.chart.swing.spi.ChartSwingServiceManager;
41
import org.gvsig.tools.service.ServiceException;
42

  
43
public class ChartUsedFieldPropertiesPanel extends ChartJPanel implements IWindow, ActionListener, ListSelectionListener{
44

  
45
	/**
46
	 * 
47
	 */
48
	private static final long serialVersionUID = -301224990996378683L;
49

  
50
	private static final int SUBPANEL_WIDTH = 400;
51
	private static final int SUBPANEL_HEIGHT = 210;
52
	
53
    private JButton accept;
54
	private JButton cancel;
55
    
56
	private String selectedChartType = null;
57
	private ChartPanel currentSubtypePanel = null;
58

  
59
	private JPanel panel_chartType = null;
60
	private JPanel panelSubtype = null;
61
	private Map<String, JPanel> cardPanel = new HashMap<String, JPanel>();
62
	private JList list = null;
63
	private DefaultListModel listModel;
64
	private JLabel chartTypesLabel;
65
	private JLabel chartOptionsLabel;
66

  
67
	private ChartServiceManager serviceManager;
68

  
69
	private ChartSwingServiceManager swingManager;
70
	private JLabel lblName;
71
	private JTextField nameTextField;
72
	private JTextField unitsTextField;
73
	private JLabel lblUnits;
74
	private JLabel lblDescription;
75
	private JTextPane descriptionTextField;
76

  
77
	private MainContext mainContext;
78

  
79
	private ChartJDialog chartJDialog;
80
	
81
	private ChartProperties chartProperties;
82
	private ChartProperties previousChartProperties;
83
	
84
	/**
85
	 * @wbp.parser.constructor
86
	 */
87
	public ChartUsedFieldPropertiesPanel(MainContext mainContext) {
88
		serviceManager = ChartLocator.getServiceManager();
89
		swingManager = ChartSwingLocator.getSwingManager();
90
		
91
		this.mainContext = mainContext;
92
//		this.usedField = usedField;
93
//		this.chartUsedFieldPanel = chartUsedFieldPanel;
94
		
95
		createMainPanel();
96
		createButtonPanelEvents();
97
	}
98
	
99
	public ChartUsedFieldPropertiesPanel(MainContext mainContext, ChartProperties props) {
100
		this(mainContext);
101
		chartProperties = props;
102
		previousChartProperties = props;
103
		this.completeForm();
104
	}
105
	
106
	public void completeForm(){
107
		
108
		// Rellenamos todos los campos
109
		nameTextField.setText(chartProperties.getChartName());
110
		
111
		// Seleccionamos el tipo de gr?fica
112
		for(int i=0;i<listModel.getSize();i++){
113
			ChartEntry entry = (ChartEntry) listModel.get(i);
114
			if(entry.getChartType()==chartProperties.getChartType()){
115
				list.setSelectedIndex(i);
116
			}
117
		}
118
		
119
		// Rellenamos el panel caracter?stico de cada tipo de gr?fica
120
		ChartPanel panel = (ChartPanel) cardPanel.get((String)chartProperties.getChartType());
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff