annotate src/junotu/TabEdit.java @ 45:1cad42247892

TabEdit: Simplify shortcut logic
author Fox
date Sun, 30 Oct 2022 02:41:28 +0200
parents 5aa3c7e36ff1
children 7cf2788649a7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
1 package junotu;
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
2
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
3 import java.awt.Dimension;
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
4 import java.awt.Font;
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
5 import java.awt.event.ActionEvent;
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
6 import java.awt.event.ActionListener;
32
6cbb34600e38 TabEdit: Cancel and save keyboard shortcuts
Fox
parents: 31
diff changeset
7 import java.awt.event.InputEvent;
6cbb34600e38 TabEdit: Cancel and save keyboard shortcuts
Fox
parents: 31
diff changeset
8 import java.awt.event.KeyEvent;
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
9 import java.awt.event.FocusEvent;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
10 import java.awt.event.FocusListener;
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
11
32
6cbb34600e38 TabEdit: Cancel and save keyboard shortcuts
Fox
parents: 31
diff changeset
12 import javax.swing.KeyStroke;
13
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
13 import javax.swing.SwingUtilities;
9
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
14 import javax.swing.event.DocumentListener;
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
15 import javax.swing.event.DocumentEvent;
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
16
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
17 import javax.swing.JPanel;
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
18
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
19 import java.awt.BorderLayout;
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
20 import java.awt.FlowLayout;
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
21
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
22 import javax.swing.Box;
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
23 import javax.swing.JButton;
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
24 import javax.swing.JTextField;
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
25 import javax.swing.JTextArea;
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
26 import javax.swing.JScrollPane;
13
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
27 import javax.swing.JScrollBar;
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
28
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
29 import junotu.Main;
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
30 import junotu.Database;
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
31 import junotu.Window.Tab;
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
32 import junotu.GUIToolbox;
14
d90a9b1065d1 Rewrote 'Card' class with tag support
Fox
parents: 13
diff changeset
33 import junotu.Card;
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
34
44
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
35 public class TabEdit extends JPanel implements ActionListener {
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
36
44
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
37 private class TagWidget extends JButton implements ActionListener {
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
38
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
39 public String tag;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
40 public Object value;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
41
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
42 public TagWidget( String tag, Object value ) {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
43 super();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
44 this.tag = tag;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
45 this.value = value;
44
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
46
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
47 addActionListener(this);
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
48
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
49 update();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
50 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
51
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
52 public void update()
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
53 {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
54 if( value != null ) {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
55 setText( tag+": "+value.toString() );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
56 } else {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
57 setText( tag );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
58 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
59 }
44
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
60
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
61 public void actionPerformed( ActionEvent e )
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
62 {
45
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
63 /* Not exactly sure how this works, but it does. */
44
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
64 tagEdit( this );
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
65 }
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
66
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
67 }
45
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
68
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
69 private final String KEY_ACTION_BACK = "back";
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
70 private final String KEY_ACTION_SAVE = "save";
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
71
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
72 private Card card = null;
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
73 private boolean newCard = true;
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
74
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
75 private TagWidget editedTag = null;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
76 private JTextField editedTagField;
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
77
13
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
78 private JScrollPane scroll;
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
79
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
80 private JTextField title;
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
81 private JTextArea content;
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
82 private JPanel tags;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
83 private JButton addTag;
12
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
84
44
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
85 private JButton back;
13
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
86 private JButton delete;
44
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
87 private JButton save;
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
88
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
89
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
90 public TabEdit()
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
91 {
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
92 this.setLayout( new BorderLayout() );
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
93
20
981d634a05ac Started on my own layout manager for TabEdit
Fox
parents: 16
diff changeset
94 JPanel scrollContent = new JPanel( new GUIToolbox.CardEditLayout() );
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
95 scroll = new JScrollPane( scrollContent );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
96 title = new JTextField();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
97 content = new JTextArea();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
98 tags = new JPanel();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
99 editedTagField = new JTextField();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
100 addTag = new JButton("+");
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
101
44
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
102 Box bottom = Box.createHorizontalBox();
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
103 back = new JButton("Cancel");
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
104 delete = new JButton("Delete");
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
105 save = new JButton("Save");
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
106
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
107 tags.setLayout( new FlowLayout() );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
108
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
109 title.setFont( new Font( "Monospaced", Font.PLAIN, 32 ) );
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
110 content.setFont( new Font( "Monospaced", Font.PLAIN, 16 ) );
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
111 editedTagField.setFont( new Font( "Monospaced", Font.PLAIN, 12 ) );
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
112
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
113 scroll.getVerticalScrollBar().setUnitIncrement(16);
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
114
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
115 title.setMaximumSize( new Dimension( Integer.MAX_VALUE, 64 ) );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
116 //content.setMaximumSize( new Dimension( Integer.MAX_VALUE, Integer.MAX_VALUE ) );
20
981d634a05ac Started on my own layout manager for TabEdit
Fox
parents: 16
diff changeset
117 content.setLineWrap( true );
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
118 /* TODO: Figure out tags layout mess. */
24
b66fc08656c1 TabEdit: commented out lines that seem to have no effect
Fox
parents: 20
diff changeset
119 //tags.setPreferredSize( new Dimension( 16, 256 ) );
b66fc08656c1 TabEdit: commented out lines that seem to have no effect
Fox
parents: 20
diff changeset
120 //tags.setMaximumSize( new Dimension( Integer.MAX_VALUE, Integer.MAX_VALUE ) );
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
121
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
122 this.add( scroll, BorderLayout.CENTER );
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
123 scrollContent.add( title );
20
981d634a05ac Started on my own layout manager for TabEdit
Fox
parents: 16
diff changeset
124 //scrollContent.add( Box.createVerticalStrut(10) );
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
125 scrollContent.add( content );
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
126 scrollContent.add( tags );
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
127
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
128 this.add( bottom, BorderLayout.SOUTH );
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
129 bottom.add( back );
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
130 bottom.add( Box.createHorizontalGlue() );
12
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
131 bottom.add( delete );
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
132 bottom.add( save );
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
133
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
134 //scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
9
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
135
44
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
136 back.addActionListener(this);
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
137 delete.addActionListener(this);
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
138 save.addActionListener(this);
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
139 addTag.addActionListener(this);
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
140
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
141 editedTagField.addFocusListener(
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
142 new FocusListener()
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
143 {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
144 @Override
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
145 public void focusGained(FocusEvent e)
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
146 {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
147 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
148
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
149 @Override
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
150 public void focusLost(FocusEvent e)
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
151 {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
152 tagCommit();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
153 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
154 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
155 );
9
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
156
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
157 title.getDocument().addDocumentListener(
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
158 new DocumentListener()
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
159 {
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
160 @Override
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
161 public void changedUpdate( DocumentEvent e )
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
162 {
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
163 updateTitle();
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
164 }
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
165 @Override
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
166 public void removeUpdate( DocumentEvent e )
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
167 {
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
168 updateTitle();
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
169 }
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
170 @Override
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
171 public void insertUpdate( DocumentEvent e )
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
172 {
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
173 updateTitle();
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
174 }
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
175 }
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
176 );
32
6cbb34600e38 TabEdit: Cancel and save keyboard shortcuts
Fox
parents: 31
diff changeset
177
45
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
178 registerKeyboardAction( this, KEY_ACTION_BACK, KeyStroke.getKeyStroke( KeyEvent.VK_ESCAPE, 0 ), WHEN_IN_FOCUSED_WINDOW );
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
179 registerKeyboardAction( this, KEY_ACTION_SAVE, KeyStroke.getKeyStroke( KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK ), WHEN_IN_FOCUSED_WINDOW );
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
180
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
181 }
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
182
13
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
183 private void scrollTop()
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
184 {
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
185 JScrollBar scrollbar = scroll.getVerticalScrollBar();
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
186 scrollbar.setValue(0);
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
187 }
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
188
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
189 private void scrollBottom()
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
190 {
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
191 JScrollBar scrollbar = scroll.getVerticalScrollBar();
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
192 int maximum = scrollbar.getMaximum()-scrollbar.getVisibleAmount();
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
193 scrollbar.setValue(maximum);
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
194 }
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
195
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
196 public void cardCreate()
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
197 {
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
198 newCard = true;
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
199 card = new Card();
9
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
200 updateTitle();
12
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
201 delete.setVisible(false);
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
202 updateTags();
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
203 }
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
204
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
205 public void cardEdit( Card card )
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
206 {
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
207 newCard = false;
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
208 this.card = card;
14
d90a9b1065d1 Rewrote 'Card' class with tag support
Fox
parents: 13
diff changeset
209 title.setText( card.titleGet() );
d90a9b1065d1 Rewrote 'Card' class with tag support
Fox
parents: 13
diff changeset
210 content.setText( card.contentGet() );
9
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
211 updateTitle();
12
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
212 delete.setVisible(true);
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
213 updateTags();
13
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
214 SwingUtilities.invokeLater(
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
215 new Runnable()
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
216 {
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
217 public void run()
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
218 {
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
219 scrollTop();
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
220 }
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
221 }
ecc0cb60b845 Scroll to top when opening a card to edit
Fox
parents: 12
diff changeset
222 );
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
223 }
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
224
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
225 private void reset()
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
226 {
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
227 title.setText("");
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
228 content.setText("");
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
229 card = null;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
230 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
231
16
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
232 private void updateTitle()
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
233 {
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
234 Window window = (Window)this.getTopLevelAncestor();
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
235
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
236 String text = title.getText();
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
237 String action = newCard ? "Create" : "Edit";
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
238
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
239 if( text.length() > 0 ) {
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
240 window.setTitle( window.preferredTitle( action+": "+text ) );
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
241 } else {
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
242 window.setTitle( window.preferredTitle( action ) );
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
243 }
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
244
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
245 }
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
246
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
247 private void updateTags()
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
248 {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
249 tags.removeAll();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
250 for( String tag : card.tagNames() ) {
16
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
251 if( tag.startsWith("_") ) {
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
252 continue;
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
253 }
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
254 for( Object value : card.tagValues( tag ) ) {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
255 tags.add( new TagWidget( tag, value ) );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
256 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
257 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
258 tags.add( addTag );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
259 tags.validate();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
260 tags.repaint();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
261 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
262
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
263 private void tagAdd()
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
264 {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
265 tags.add( editedTagField, GUIToolbox.componentGetIndex( addTag ) );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
266 editedTagField.setText( "" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
267 editedTagField.setColumns(12);
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
268 editedTagField.grabFocus();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
269 tags.validate();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
270 tags.repaint();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
271 System.out.print( "Opened new tag for editing.\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
272 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
273
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
274 private void tagEdit( TagWidget tagWidget )
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
275 {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
276 editedTag = tagWidget;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
277 tags.add( editedTagField, GUIToolbox.componentGetIndex( editedTag ) );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
278 if( editedTag.value != null ) {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
279 editedTagField.setText( editedTag.tag+":"+editedTag.value.toString() );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
280 } else {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
281 editedTagField.setText( editedTag.tag );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
282 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
283 editedTagField.setColumns(0);
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
284 editedTagField.grabFocus();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
285 editedTag.setVisible(false);
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
286 tags.validate();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
287 tags.repaint();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
288 System.out.print( "Opened existing tag for editing.\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
289 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
290
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
291 private void tagCommit()
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
292 {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
293
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
294 String newTag;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
295 Object newValue;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
296
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
297 {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
298 String[] split = editedTagField.getText().split( ":", 2 );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
299 newTag = split[0];
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
300 newValue = split.length > 1 ? split[1] : null;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
301 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
302
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
303 /* Either editing tag, or adding a new one. */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
304 if( editedTag != null ) {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
305
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
306 String oldTag = editedTag.tag;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
307 Object oldValue = editedTag.value;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
308
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
309 logTagChange( oldTag, oldValue, newTag, newValue );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
310
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
311 if( oldTag.equals(newTag) ) {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
312 card.tagValueReplace( oldTag, oldValue, newValue );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
313 editedTag.value = newValue;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
314 editedTag.update();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
315 } else { /* Replace tag with another one. */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
316
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
317 card.tagValueRemove( oldTag, oldValue );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
318 card.tagValueAdd( newTag, newValue );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
319
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
320 if( !newTag.equals("") ) {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
321 editedTag.tag = newTag;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
322 editedTag.value = newValue;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
323 editedTag.update();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
324 } else {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
325 tags.remove( editedTag );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
326 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
327
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
328 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
329
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
330 editedTag.setVisible( true );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
331
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
332 } else { /* Adding new tag (value). */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
333 if( !newTag.equals("") ) {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
334 card.tagValueAdd( newTag, newValue );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
335 tags.add( new TagWidget( newTag, newValue ), GUIToolbox.componentGetIndex( addTag )-1 );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
336 logTagChange( "", null, newTag, newValue );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
337 } else {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
338 logTagChange( "", null, "", null );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
339 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
340 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
341
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
342 editedTagField.setText( "" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
343 tags.remove( editedTagField );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
344
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
345 editedTag = null;
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
346
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
347 tags.validate();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
348 tags.repaint();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
349
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
350 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
351
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
352 private void logTagChange( String oldTag, Object oldValue, String newTag, Object newValue )
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
353 {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
354 System.out.print( "Comitted changes to tag: " );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
355 if( oldTag.equals("") ) { /* Creating tag. */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
356 if( !newTag.equals("") ) {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
357 if( newValue == null ) { /* No value. */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
358 System.out.print( "Added tag '"+newTag+"' (with no value)\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
359 } else { /* Has value. */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
360 System.out.print( "Added tag '"+newTag+"' with value '"+newValue.toString()+"'\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
361 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
362 } else {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
363 System.out.print( "No changes.\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
364 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
365 } else { /* Editing tag. */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
366 if( oldTag.equals(newTag) ) { /* Same tag. */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
367 if( oldValue == null ) {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
368 if( newValue == null ) { /* Clear before, clear now. */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
369 System.out.print( "No changes (tag '"+oldTag+"' with no value)\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
370 } else { /* Assigned value. */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
371 System.out.print( "Assigned value of tag '"+oldTag+"' to '"+newValue.toString()+"'\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
372 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
373 } else {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
374 if( newValue == null ) { /* Clearing value. */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
375 System.out.print( "Cleared value of tag '"+oldTag+"' (was '"
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
376 +oldValue.toString()+"')\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
377 } else if( oldValue.equals(newValue) ) { /* Value is the same. */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
378 System.out.print( "No changes (tag '"+oldTag+"' with value '"+oldValue+"')\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
379 } else { /* Changing value. */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
380 System.out.print( "Changed value of tag '"+oldTag+"' from '"
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
381 +oldValue.toString()+"' to '"+newValue.toString()+"'\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
382 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
383 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
384 } else { /* Replaced tag. */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
385 if( newTag.equals("") ) { /* Removing tag. */
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
386 if( oldValue == null ) {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
387 System.out.print( "Removed tag '"+oldTag+"' (with no value)\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
388 } else {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
389 System.out.print( "Removed tag '"+oldTag+"' with value '"+oldValue.toString()+"'\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
390 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
391 } else {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
392 if( oldValue == null ) {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
393 if( newValue == null ) {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
394 System.out.print(
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
395 "Renamed tag '"+oldTag+"' -> '"
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
396 +newTag+"'\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
397 } else {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
398 System.out.print(
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
399 "Changed tag '"+oldTag+"' -> '"
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
400 +newTag+"': '"+newValue.toString()+"'\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
401 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
402 } else {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
403 if( newValue == null ) {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
404 System.out.print(
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
405 "Changed tag '"+oldTag+"': '"+oldValue.toString()+"' -> '"
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
406 +newTag+"'\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
407 } else {
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
408 System.out.print(
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
409 "Changed tag '"+oldTag+"': '"+oldValue.toString()+"' -> '"
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
410 +newTag+"': '"+newValue.toString()+"'\n" );
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
411 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
412 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
413 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
414 }
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
415 }
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
416 }
9
dd51276f95a2 Dynamically change window title on card edit tab to reflect card title
Fox
parents: 8
diff changeset
417
16
736bcfba1d2d Hide internal tags from interface
Fox
parents: 15
diff changeset
418
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
419 private void buttonClickedBack()
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
420 {
11
587b69a38915 Editing cards
Fox
parents: 9
diff changeset
421 Window window = (Window)this.getTopLevelAncestor();
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
422 reset();
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
423 window.tabSwitch( Tab.SEARCH );
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
424 }
12
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
425
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
426 private void buttonClickedDelete()
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
427 {
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
428
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
429 if( newCard ) {
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
430 return;
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
431 }
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
432
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
433 try {
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
434 Main.database.cardDelete( card.identifierGet() );
12
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
435 } catch( Exception e ) {
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
436 throw new RuntimeException(e);
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
437 }
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
438
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
439 Window window = (Window)this.getTopLevelAncestor();
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
440 window.tabSearch.search();
15
4bb371496315 Tag editing
Fox
parents: 14
diff changeset
441 reset();
12
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
442 window.tabSwitch( Tab.SEARCH );
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
443
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
444 }
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
445
31
fb49a356458a Control + save button click to save card and stay in edit mode
Fox
parents: 24
diff changeset
446 private void buttonClickedSave( boolean noSwitch )
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
447 {
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
448
14
d90a9b1065d1 Rewrote 'Card' class with tag support
Fox
parents: 13
diff changeset
449 card.titleSet( title.getText() );
d90a9b1065d1 Rewrote 'Card' class with tag support
Fox
parents: 13
diff changeset
450 card.contentSet( content.getText() );
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
451
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
452 try {
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
453 if( newCard ) {
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
454 Main.database.cardAdd( card );
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
455 } else {
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
456 Main.database.cardUpdate( card );
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
457 }
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
458 } catch( Exception e ) {
12
b4fd74d0680d Card deletion button
Fox
parents: 11
diff changeset
459 throw new RuntimeException(e);
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
460 }
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
461
11
587b69a38915 Editing cards
Fox
parents: 9
diff changeset
462 Window window = (Window)this.getTopLevelAncestor();
31
fb49a356458a Control + save button click to save card and stay in edit mode
Fox
parents: 24
diff changeset
463 window.tabSearch.search();
fb49a356458a Control + save button click to save card and stay in edit mode
Fox
parents: 24
diff changeset
464
fb49a356458a Control + save button click to save card and stay in edit mode
Fox
parents: 24
diff changeset
465 if( noSwitch ) {
fb49a356458a Control + save button click to save card and stay in edit mode
Fox
parents: 24
diff changeset
466 if( newCard ) {
fb49a356458a Control + save button click to save card and stay in edit mode
Fox
parents: 24
diff changeset
467 cardEdit( this.card );
fb49a356458a Control + save button click to save card and stay in edit mode
Fox
parents: 24
diff changeset
468 }
fb49a356458a Control + save button click to save card and stay in edit mode
Fox
parents: 24
diff changeset
469 } else {
fb49a356458a Control + save button click to save card and stay in edit mode
Fox
parents: 24
diff changeset
470 reset();
fb49a356458a Control + save button click to save card and stay in edit mode
Fox
parents: 24
diff changeset
471 window.tabSwitch( Tab.SEARCH );
fb49a356458a Control + save button click to save card and stay in edit mode
Fox
parents: 24
diff changeset
472 }
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
473 }
44
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
474
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
475 public void actionPerformed( ActionEvent e )
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
476 {
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
477 Object source = e.getSource();
45
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
478 if( source == this ) {
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
479 switch( e.getActionCommand() ) {
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
480
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
481 case KEY_ACTION_BACK: {
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
482 buttonClickedBack();
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
483 break;
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
484 }
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
485
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
486 case KEY_ACTION_SAVE: {
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
487 buttonClickedSave( true );
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
488 try {
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
489 Main.database.databaseCommit();
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
490 } catch( Exception ex ) {
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
491 System.out.print( "Failed to write database: "+ex.getMessage()+"\n" );
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
492 }
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
493 break;
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
494 }
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
495
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
496 }
1cad42247892 TabEdit: Simplify shortcut logic
Fox
parents: 44
diff changeset
497 } else if( source == back ) {
44
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
498 buttonClickedBack();
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
499 } else if( source == delete ) {
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
500 buttonClickedDelete();
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
501 } else if( source == save ) {
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
502 boolean noSwitch = (e.getModifiers() & ActionEvent.SHIFT_MASK) != 0;
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
503 buttonClickedSave( noSwitch );
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
504 } else if( source == addTag ) {
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
505 tagAdd();
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
506 }
5aa3c7e36ff1 TabEdit: Simplify action listeners
Fox
parents: 34
diff changeset
507 }
8
9d3256f86803 Functional card creation and search
Fox
parents: 1
diff changeset
508
1
3922b33bb764 Separated tabs into classes
Fox
parents:
diff changeset
509 }