annotate src/junotu/TabEdit.java @ 65:4dd7d78e19a1

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