1 package edu.psu.geovista.app.spreadsheet.tools;
2
3 import edu.psu.geovista.app.spreadsheet.formula.Formula;
4 import edu.psu.geovista.app.spreadsheet.table.SSTable;
5 import edu.psu.geovista.app.spreadsheet.util.Debug;
6
7 import javax.swing.*;
8 import java.awt.event.ActionListener;
9 import java.awt.event.ActionEvent;
10 import java.awt.*;
11 import java.net.URL;
12 import java.io.InputStream;
13
14 /*
15 * Description:
16 * Date: Mar 29, 2003
17 * Time: 4:33:18 PM
18 * @author Jin Chen
19 */
20
21 public class ToolManager {
22 private SSTable table;
23 private JPanel toolBar;
24 final public static String RESOURCES="resources/";
25 final public static String MODEL_ROOT="edu/psu/geovista/app/spreadsheet/";
26 final public static String IMAGES=MODEL_ROOT+RESOURCES+"images/";
27
28 // recources
29 final private ImageIcon newIcon = getImageIcon("new.gif");
30 final private ImageIcon openIcon = getImageIcon("open.gif");
31 final private ImageIcon saveIcon = getImageIcon("save.gif");
32 final private ImageIcon unlockedIcon = getImageIcon("unlocked.gif");
33 final private ImageIcon lockedIcon = getImageIcon("locked.gif");
34 final private ImageIcon printIcon = getImageIcon("print.gif");
35 final private ImageIcon undoIcon = getImageIcon("undo.gif");
36 final private ImageIcon redoIcon = getImageIcon("redo.gif");
37 final private ImageIcon cutIcon = getImageIcon("cut.gif");
38 final private ImageIcon copyIcon = getImageIcon("copy.gif");
39 final private ImageIcon pasteIcon = getImageIcon("paste.gif");
40 final private ImageIcon findIcon = getImageIcon("find.gif");
41 final private ImageIcon insertRowIcon = getImageIcon("insertrow.gif");
42 final private ImageIcon insertColumnIcon = getImageIcon("insertcolumn.gif");
43 final private ImageIcon deleteRowIcon = getImageIcon("deleterow.gif");
44 final private ImageIcon deleteColumnIcon = getImageIcon("deletecolumn.gif");
45 final private ImageIcon sortDIcon = getImageIcon("sort_desend.gif");
46 final private ImageIcon sortAIcon = getImageIcon("sort_ascend.gif");
47 final private ImageIcon sortNoIcon = getImageIcon("sort_no.gif");
48 public ToolManager(SSTable tb) {
49 table=tb;
50 this.toolBar =this.setupToolBar(tb);
51
52 }
53
54 private JPanel setupToolBar(final SSTable table){
55 //Container c=this.getRootPane().getContentPane();
56
57 JButton addCol=new JButton(insertColumnIcon);
58 addCol.setToolTipText("Insert a column");
59 addCol.addActionListener(new AddColumn(table));
60
61
62 JButton removeCol=new JButton(deleteColumnIcon);
63 removeCol.setToolTipText("Remove a column");
64 removeCol.addActionListener(new RemoveColumn(table));
65
66 JButton addRow=new JButton(insertRowIcon);
67 addRow.setToolTipText("Insert a row");
68 addRow.addActionListener(new AddRow(table));
69
70 JButton removeRow=new JButton(deleteRowIcon);
71 removeRow.setToolTipText("Remove a row");
72 removeRow.addActionListener(new RemoveRow(table));
73
74 JButton sorta=new JButton(sortAIcon);
75 sorta.setToolTipText("Ascending Sort ") ;
76 sorta.addActionListener(new Sort(table,Sort.ASCEND ));
77
78 JButton sortd=new JButton(sortDIcon);
79 sortd.setToolTipText("Descending Sort ") ;
80 sortd.addActionListener(new Sort(table,Sort.DESCEND ));
81
82 JButton sortn=new JButton(sortNoIcon);
83 sortn.setToolTipText("Clear Sort ") ;
84 sortn.addActionListener(new Sort(table,Sort.CLEAR ));
85 //JButton sort=new JButton("edu.psu.geovista.app.spreadsheet.tools.Sort");
86 //sort.addActionListener(new Sort(table,-1));
87 /****************** NOT implement yet ***************************/
88 // we save this button as private member for further reference
89 JButton saveButton = new JButton(saveIcon);
90 saveButton.setToolTipText("Save");
91 saveButton.addActionListener(new ActionListener() {
92 public void actionPerformed(ActionEvent evt) {
93 //fileOp.saveFile();
94 table.requestFocus();
95 }
96 });
97
98 // we save this button as private member for further reference
99 JButton passwordButton = new JButton(unlockedIcon);
100 passwordButton.setToolTipText("Set Password");
101 passwordButton.addActionListener(new ActionListener() {
102 public void actionPerformed(ActionEvent evt) {
103 //fileOp.setPassword();
104 table.requestFocus();
105 }
106 });
107
108 JButton printButton = new JButton(printIcon);
109 printButton.setToolTipText("Print");
110 printButton.addActionListener(new ActionListener() {
111 public void actionPerformed(ActionEvent evt) {
112 Thread runner = new Thread() {
113 public void run() {
114 //fileOp.printData();
115 }
116 };
117 runner.start();
118 table.requestFocus();
119 }
120 });
121
122 JButton undoButton = new JButton(undoIcon);
123 undoButton.setToolTipText("Undo");
124 undoButton.addActionListener(new ActionListener() {
125 public void actionPerformed(ActionEvent evt) {
126 //history.undo(tableModel);
127 table.requestFocus();
128 }
129 });
130
131 JButton redoButton = new JButton(redoIcon);
132 redoButton.setToolTipText("Redo");
133 redoButton.addActionListener(new ActionListener() {
134 public void actionPerformed(ActionEvent evt) {
135 //history.redo(tableModel);
136 table.requestFocus();
137 }
138 });
139
140 JButton cutButton = new JButton(cutIcon);
141 cutButton.setToolTipText("Cut");
142 cutButton.addActionListener(new ActionListener() {
143 public void actionPerformed(ActionEvent evt) {
144 //editOp.cut();
145 table.requestFocus();
146 }
147 });
148 JButton copyButton = new JButton(copyIcon);
149 copyButton.setToolTipText("Copy");
150 copyButton.addActionListener(new ActionListener() {
151 public void actionPerformed(ActionEvent evt) {
152 //editOp.copy();
153 table.requestFocus();
154 }
155 });
156
157 JButton pasteButton = new JButton(pasteIcon);
158 pasteButton.setToolTipText("Paste");
159 pasteButton.addActionListener(new ActionListener() {
160 public void actionPerformed(ActionEvent evt) {
161 //editOp.paste();
162 table.requestFocus();
163 }
164 });
165
166 JButton findButton = new JButton(findIcon);
167 findButton.setToolTipText("Find");
168 findButton.addActionListener(new ActionListener() {
169 public void actionPerformed(ActionEvent evt) {
170 //editOp.find(true);
171 table.requestFocus();
172 }
173 });
174 /****************** NOT implement yet ***************************/
175 //Set fname=Formula.getFunctionNames();
176 //fname.add("function");
177 //JComboBox functions=new JComboBox(Formula.getFunctionNames() );
178 JComboBox functions=new JComboBox(this.table.getFunManager().getFunctionNames() );
179 JPanel tp=new JPanel(); //edu.psu.geovista.app.spreadsheet.tools panel
180 tp.setLayout(new FlowLayout());
181 //tp.add(saveButton);
182 //tp.add(printButton);
183 tp.add(cutButton);
184 tp.add(copyButton);
185 tp.add(pasteButton);
186
187 tp.add(undoButton);
188 tp.add(redoButton);
189
190 tp.add(findButton);
191 tp.add(addCol);
192 tp.add(removeCol);
193 tp.add(addRow);
194 tp.add(removeRow);
195 tp.add(sorta);
196 tp.add(sortd);
197 tp.add(sortn);
198 tp.add(functions);
199 return tp;
200 }
201
202 public JPanel getToolBar() {
203 return toolBar;
204 }
205
206 // loading images
207 public static ImageIcon getImageIcon(String name) {
208 String fullName=IMAGES+name;
209 ClassLoader cl=ToolManager.class.getClassLoader() ;
210 URL url=cl.getResource(fullName);
211 if (url == null) {
212 System.out.println("image "+name+" not found");
213 return null;
214 }
215 return new ImageIcon(url);
216 }
217 }
This page was automatically generated by Maven