2 * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8)
3 * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
11 * Jalview is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty
13 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 * PURPOSE. See the GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License along with Jalview. If not, see <http://www.gnu.org/licenses/>.
23 import java.awt.event.*;
29 import jalview.jbgui.*;
30 import jalview.schemes.*;
31 import jalview.util.MessageManager;
39 public class Preferences extends GPreferences
43 * Holds name and link separated with | character. Sequence ID must be
44 * $SEQUENCE_ID$ or $SEQUENCE_ID=/.possible | chars ./=$
46 public static Vector sequenceURLLinks;
49 * Holds name and link separated with | character. Sequence IDS and Sequences
50 * must be $SEQUENCEIDS$ or $SEQUENCEIDS=/.possible | chars ./=$ and
51 * $SEQUENCES$ or $SEQUENCES=/.possible | chars ./=$ and separation character
52 * for first and second token specified after a pipe character at end |,|.
53 * (TODO: proper escape for using | to separate ids or sequences
56 public static Vector groupURLLinks;
62 "EMBL-EBI Search|http://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$SEQUENCE_ID$");
63 sequenceURLLinks = new Vector();
67 StringTokenizer st = new StringTokenizer(string, "|");
68 while (st.hasMoreElements())
70 String name = st.nextToken();
71 String url = st.nextToken();
72 // check for '|' within a regex
73 int rxstart = url.indexOf("$SEQUENCE_ID$");
74 while (rxstart == -1 && url.indexOf("/=$") == -1)
76 url = url + "|" + st.nextToken();
78 sequenceURLLinks.addElement(name + "|" + url);
80 } catch (Exception ex)
82 System.out.println(ex + "\nError parsing sequence links");
85 // upgrade old SRS link
86 int srsPos = sequenceURLLinks
87 .indexOf("SRS|http://srs.ebi.ac.uk/srsbin/cgi-bin/wgetz?-newId+(([uniprot-all:$SEQUENCE_ID$]))+-view+SwissEntry");
90 sequenceURLLinks.setElementAt(
91 "EMBL-EBI Search|http://www.ebi.ac.uk/ebisearch/search.ebi?db=allebi&query=$SEQUENCE_ID$",
97 * TODO: reformulate groupURL encoding so two or more can be stored in the
98 * .properties file as '|' separated strings
101 groupURLLinks = new Vector();
102 // groupURLLinks.addElement("UNIPROT|EnVision2|http://www.ebi.ac.uk/enfin-srv/envision2/pages/linkin.jsf?tool=Jalview&workflow=Default&datasetName=JalviewIDs$DATASETID$&input=$SEQUENCEIDS$&inputType=0|,");
103 // groupURLLinks.addElement("Seqs|EnVision2|http://www.ebi.ac.uk/enfin-srv/envision2/pages/linkin.jsf?tool=Jalview&workflow=Default&datasetName=JalviewSeqs$DATASETID$&input=$SEQUENCES=/([A-Za-z]+)+/=$&inputType=1|,");
107 Vector nameLinks, urlLinks;
109 JInternalFrame frame;
111 DasSourceBrowser dasSource;
113 private WsPreferences wsPrefs;
116 * Creates a new Preferences object.
121 frame = new JInternalFrame();
122 frame.setContentPane(this);
123 dasSource = new DasSourceBrowser();
124 dasPanel.add(dasSource, BorderLayout.CENTER);
125 wsPrefs = new WsPreferences();
126 wsPanel.add(wsPrefs, BorderLayout.CENTER);
127 int width = 500, height = 420;
128 if (new jalview.util.Platform().isAMac())
134 Desktop.addInternalFrame(frame, "Preferences", width, height);
135 frame.setMinimumSize(new Dimension(width, height));
137 seqLimit.setSelected(Cache.getDefault("SHOW_JVSUFFIX", true));
138 rightAlign.setSelected(Cache.getDefault("RIGHT_ALIGN_IDS", false));
139 fullScreen.setSelected(Cache.getDefault("SHOW_FULLSCREEN", false));
140 annotations.setSelected(Cache.getDefault("SHOW_ANNOTATIONS", true));
142 conservation.setSelected(Cache.getDefault("SHOW_CONSERVATION", true));
143 quality.setSelected(Cache.getDefault("SHOW_QUALITY", true));
144 identity.setSelected(Cache.getDefault("SHOW_IDENTITY", true));
145 openoverv.setSelected(Cache.getDefault("SHOW_OVERVIEW", false));
147 .setSelected(Cache.getDefault("SHOW_UNCONSERVED", false));
148 showNpTooltip.setSelected(Cache
149 .getDefault("SHOW_NPFEATS_TOOLTIP", true));
150 showDbRefTooltip.setSelected(Cache.getDefault("SHOW_DBREFS_TOOLTIP",
152 sortByTree.setSelected(Cache.getDefault("SORT_BY_TREE", false));
153 for (int i = ColourSchemeProperty.FIRST_COLOUR; i <= ColourSchemeProperty.LAST_COLOUR; i++)
155 colour.addItem(ColourSchemeProperty.getColourName(i));
158 String string = Cache.getDefault("DEFAULT_COLOUR", "None");
160 colour.setSelectedItem(string);
163 * default min-max colours for annotation shading
165 minColour.setBackground(Cache.getDefaultColour("ANNOTATIONCOLOUR_MIN",
167 maxColour.setBackground(Cache.getDefaultColour("ANNOTATIONCOLOUR_MAX",
170 String[] fonts = java.awt.GraphicsEnvironment
171 .getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
173 for (int i = 0; i < fonts.length; i++)
175 fontNameCB.addItem(fonts[i]);
178 for (int i = 1; i < 31; i++)
180 fontSizeCB.addItem(i + "");
183 fontStyleCB.addItem("plain");
184 fontStyleCB.addItem("bold");
185 fontStyleCB.addItem("italic");
187 fontNameCB.setSelectedItem(Cache.getDefault("FONT_NAME", "SansSerif"));
188 fontSizeCB.setSelectedItem(Cache.getDefault("FONT_SIZE", "10"));
189 fontStyleCB.setSelectedItem(Cache.getDefault("FONT_STYLE", Font.PLAIN
192 smoothFont.setSelected(Cache.getDefault("ANTI_ALIAS", false));
194 idItalics.setSelected(Cache.getDefault("ID_ITALICS", true));
196 wrap.setSelected(Cache.getDefault("WRAP_ALIGNMENT", false));
198 gapSymbolCB.addItem("-");
199 gapSymbolCB.addItem(".");
201 gapSymbolCB.setSelectedItem(Cache.getDefault("GAP_SYMBOL", "-"));
204 .setSelected(Cache.getDefault("SHOW_STARTUP_FILE", true));
205 startupFileTextfield.setText(Cache.getDefault("STARTUP_FILE",
206 Cache.getDefault("www.jalview.org", "http://www.jalview.org")
207 + "/examples/exampleFile_2_3.jar"));
209 sortby.addItem("No sort");
210 sortby.addItem("Id");
211 sortby.addItem("Pairwise Identity");
212 sortby.setSelectedItem(Cache.getDefault("SORT_ALIGNMENT", "No sort"));
214 epsRendering.addItem("Prompt each time");
215 epsRendering.addItem("Lineart");
216 epsRendering.addItem("Text");
217 epsRendering.setSelectedItem(Cache.getDefault("EPS_RENDERING",
218 "Prompt each time"));
219 autoIdWidth.setSelected(Cache.getDefault("FIGURE_AUTOIDWIDTH", false));
220 userIdWidth.setEnabled(autoIdWidth.isSelected());
221 userIdWidthlabel.setEnabled(autoIdWidth.isSelected());
222 Integer wi = Cache.getIntegerProperty("FIGURE_USERIDWIDTH");
223 userIdWidth.setText(wi == null ? "" : wi.toString());
224 blcjv.setSelected(Cache.getDefault("BLC_JVSUFFIX", true));
225 clustaljv.setSelected(Cache.getDefault("CLUSTAL_JVSUFFIX", true));
226 fastajv.setSelected(Cache.getDefault("FASTA_JVSUFFIX", true));
227 msfjv.setSelected(Cache.getDefault("MSF_JVSUFFIX", true));
228 pfamjv.setSelected(Cache.getDefault("PFAM_JVSUFFIX", true));
229 pileupjv.setSelected(Cache.getDefault("PILEUP_JVSUFFIX", true));
230 pirjv.setSelected(Cache.getDefault("PIR_JVSUFFIX", true));
232 modellerOutput.setSelected(Cache.getDefault("PIR_MODELLER", false));
234 autoCalculateConsCheck.setSelected(Cache.getDefault(
235 "AUTO_CALC_CONSENSUS", true));
236 showGroupConsensus.setSelected(Cache.getDefault("SHOW_GROUP_CONSENSUS",
238 showGroupConservation.setSelected(Cache.getDefault(
239 "SHOW_GROUP_CONSERVATION", false));
240 showConsensHistogram.setSelected(Cache.getDefault(
241 "SHOW_CONSENSUS_HISTOGRAM", true));
242 showConsensLogo.setSelected(Cache.getDefault("SHOW_CONSENSUS_LOGO",
245 padGaps.setSelected(Cache.getDefault("PAD_GAPS", false));
247 /***************************************************************************
250 nameLinks = new Vector();
251 urlLinks = new Vector();
252 for (int i = 0; i < sequenceURLLinks.size(); i++)
254 String link = sequenceURLLinks.elementAt(i).toString();
255 nameLinks.addElement(link.substring(0, link.indexOf("|")));
256 urlLinks.addElement(link.substring(link.indexOf("|") + 1));
261 useProxy.setSelected(Cache.getDefault("USE_PROXY", false));
262 proxyServerTB.setEnabled(useProxy.isSelected());
263 proxyPortTB.setEnabled(useProxy.isSelected());
264 proxyServerTB.setText(Cache.getDefault("PROXY_SERVER", ""));
265 proxyPortTB.setText(Cache.getDefault("PROXY_PORT", ""));
267 defaultBrowser.setText(Cache.getDefault("DEFAULT_BROWSER", ""));
269 usagestats.setSelected(Cache.getDefault("USAGESTATS", false));
271 .setSelected(Cache.getProperty("NOQUESTIONNAIRES") == null); // note
274 versioncheck.setSelected(Cache.getDefault("VERSION_CHECK", true)); // default
277 annotations_actionPerformed(null); // update the display of the annotation
282 } catch (Exception ex)
284 ex.printStackTrace();
295 public void ok_actionPerformed(ActionEvent e)
298 Cache.applicationProperties.setProperty("SHOW_JVSUFFIX",
299 Boolean.toString(seqLimit.isSelected()));
300 Cache.applicationProperties.setProperty("RIGHT_ALIGN_IDS",
301 Boolean.toString(rightAlign.isSelected()));
302 Cache.applicationProperties.setProperty("SHOW_FULLSCREEN",
303 Boolean.toString(fullScreen.isSelected()));
304 Cache.applicationProperties.setProperty("SHOW_OVERVIEW",
305 Boolean.toString(openoverv.isSelected()));
306 Cache.applicationProperties.setProperty("SHOW_ANNOTATIONS",
307 Boolean.toString(annotations.isSelected()));
308 Cache.applicationProperties.setProperty("SHOW_CONSERVATION",
309 Boolean.toString(conservation.isSelected()));
310 Cache.applicationProperties.setProperty("SHOW_QUALITY",
311 Boolean.toString(quality.isSelected()));
312 Cache.applicationProperties.setProperty("SHOW_IDENTITY",
313 Boolean.toString(identity.isSelected()));
315 Cache.applicationProperties.setProperty("DEFAULT_COLOUR", colour
316 .getSelectedItem().toString());
317 Cache.applicationProperties.setProperty("GAP_SYMBOL", gapSymbolCB
318 .getSelectedItem().toString());
320 Cache.applicationProperties.setProperty("FONT_NAME", fontNameCB
321 .getSelectedItem().toString());
322 Cache.applicationProperties.setProperty("FONT_STYLE", fontStyleCB
323 .getSelectedItem().toString());
324 Cache.applicationProperties.setProperty("FONT_SIZE", fontSizeCB
325 .getSelectedItem().toString());
327 Cache.applicationProperties.setProperty("ID_ITALICS",
328 Boolean.toString(idItalics.isSelected()));
329 Cache.applicationProperties.setProperty("SHOW_UNCONSERVED",
330 Boolean.toString(showUnconserved.isSelected()));
331 Cache.applicationProperties.setProperty("SHOW_GROUP_CONSENSUS",
332 Boolean.toString(showGroupConsensus.isSelected()));
333 Cache.applicationProperties.setProperty("SHOW_GROUP_CONSERVATION",
334 Boolean.toString(showGroupConservation.isSelected()));
335 Cache.applicationProperties.setProperty("SHOW_CONSENSUS_HISTOGRAM",
336 Boolean.toString(showConsensHistogram.isSelected()));
337 Cache.applicationProperties.setProperty("SHOW_CONSENSUS_LOGO",
338 Boolean.toString(showConsensLogo.isSelected()));
339 Cache.applicationProperties.setProperty("ANTI_ALIAS",
340 Boolean.toString(smoothFont.isSelected()));
341 Cache.applicationProperties.setProperty("SHOW_NPFEATS_TOOLTIP",
342 Boolean.toString(showNpTooltip.isSelected()));
343 Cache.applicationProperties.setProperty("SHOW_DBREFS_TOOLTIP",
344 Boolean.toString(showDbRefTooltip.isSelected()));
346 Cache.applicationProperties.setProperty("WRAP_ALIGNMENT",
347 Boolean.toString(wrap.isSelected()));
349 Cache.applicationProperties.setProperty("STARTUP_FILE",
350 startupFileTextfield.getText());
351 Cache.applicationProperties.setProperty("SHOW_STARTUP_FILE",
352 Boolean.toString(startupCheckbox.isSelected()));
354 Cache.applicationProperties.setProperty("SORT_ALIGNMENT", sortby
355 .getSelectedItem().toString());
357 Cache.setColourProperty("ANNOTATIONCOLOUR_MIN",
358 minColour.getBackground());
359 Cache.setColourProperty("ANNOTATIONCOLOUR_MAX",
360 maxColour.getBackground());
362 if (epsRendering.getSelectedItem().equals("Prompt each time"))
364 Cache.applicationProperties.remove("EPS_RENDERING");
368 Cache.applicationProperties.setProperty("EPS_RENDERING", epsRendering
369 .getSelectedItem().toString());
372 if (defaultBrowser.getText().trim().length() < 1)
374 Cache.applicationProperties.remove("DEFAULT_BROWSER");
378 Cache.applicationProperties.setProperty("DEFAULT_BROWSER",
379 defaultBrowser.getText());
382 jalview.util.BrowserLauncher.resetBrowser();
384 if (nameLinks.size() > 0)
386 StringBuffer links = new StringBuffer();
387 sequenceURLLinks = new Vector();
388 for (int i = 0; i < nameLinks.size(); i++)
390 sequenceURLLinks.addElement(nameLinks.elementAt(i) + "|"
391 + urlLinks.elementAt(i));
392 links.append(sequenceURLLinks.elementAt(i).toString());
396 links.setLength(links.length() - 1);
397 Cache.applicationProperties.setProperty("SEQUENCE_LINKS",
402 Cache.applicationProperties.remove("SEQUENCE_LINKS");
405 Cache.applicationProperties.setProperty("USE_PROXY",
406 Boolean.toString(useProxy.isSelected()));
408 if (proxyServerTB.getText().trim().length() < 1)
410 Cache.applicationProperties.remove("PROXY_SERVER");
414 Cache.applicationProperties.setProperty("PROXY_SERVER",
415 proxyServerTB.getText());
418 if (proxyPortTB.getText().trim().length() < 1)
420 Cache.applicationProperties.remove("PROXY_PORT");
424 Cache.applicationProperties.setProperty("PROXY_PORT",
425 proxyPortTB.getText());
428 if (useProxy.isSelected())
430 System.setProperty("http.proxyHost", proxyServerTB.getText());
431 System.setProperty("http.proxyPort", proxyPortTB.getText());
435 System.setProperty("http.proxyHost", "");
436 System.setProperty("http.proxyPort", "");
438 Cache.setProperty("VERSION_CHECK",
439 Boolean.toString(versioncheck.isSelected()));
440 if (Cache.getProperty("USAGESTATS") != null || usagestats.isSelected())
442 // default is false - we only set this if the user has actively agreed
443 Cache.setProperty("USAGESTATS",
444 Boolean.toString(usagestats.isSelected()));
446 if (!questionnaire.isSelected())
448 Cache.setProperty("NOQUESTIONNAIRES", "true");
452 // special - made easy to edit a property file to disable questionnaires
453 // by just adding the given line
454 Cache.removeProperty("NOQUESTIONNAIRES");
456 Cache.applicationProperties.setProperty("BLC_JVSUFFIX",
457 Boolean.toString(blcjv.isSelected()));
458 Cache.applicationProperties.setProperty("CLUSTAL_JVSUFFIX",
459 Boolean.toString(clustaljv.isSelected()));
460 Cache.applicationProperties.setProperty("FASTA_JVSUFFIX",
461 Boolean.toString(fastajv.isSelected()));
462 Cache.applicationProperties.setProperty("MSF_JVSUFFIX",
463 Boolean.toString(msfjv.isSelected()));
464 Cache.applicationProperties.setProperty("PFAM_JVSUFFIX",
465 Boolean.toString(pfamjv.isSelected()));
466 Cache.applicationProperties.setProperty("PILEUP_JVSUFFIX",
467 Boolean.toString(pileupjv.isSelected()));
468 Cache.applicationProperties.setProperty("PIR_JVSUFFIX",
469 Boolean.toString(pirjv.isSelected()));
470 Cache.applicationProperties.setProperty("PIR_MODELLER",
471 Boolean.toString(modellerOutput.isSelected()));
472 jalview.io.PIRFile.useModellerOutput = modellerOutput.isSelected();
474 Cache.applicationProperties.setProperty("FIGURE_AUTOIDWIDTH",
475 Boolean.toString(autoIdWidth.isSelected()));
476 userIdWidth_actionPerformed();
477 Cache.applicationProperties.setProperty("FIGURE_USERIDWIDTH",
478 userIdWidth.getText());
480 Cache.applicationProperties.setProperty("AUTO_CALC_CONSENSUS",
481 Boolean.toString(autoCalculateConsCheck.isSelected()));
482 Cache.applicationProperties.setProperty("SORT_BY_TREE",
483 Boolean.toString(sortByTree.isSelected()));
484 Cache.applicationProperties.setProperty("PAD_GAPS",
485 Boolean.toString(padGaps.isSelected()));
487 dasSource.saveProperties(Cache.applicationProperties);
488 wsPrefs.updateAndRefreshWsMenuConfig(false);
489 Cache.saveProperties();
492 frame.setClosed(true);
493 } catch (Exception ex)
501 public void startupFileTextfield_mouseClicked()
503 JalviewFileChooser chooser = new JalviewFileChooser(
504 jalview.bin.Cache.getProperty("LAST_DIRECTORY"),
506 { "fa, fasta, fastq", "aln", "pfam", "msf", "pir", "blc", "jar" },
508 { "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "Jalview" },
509 jalview.bin.Cache.getProperty("DEFAULT_FILE_FORMAT"));
510 chooser.setFileView(new JalviewFileView());
511 chooser.setDialogTitle("Select startup file");
513 int value = chooser.showOpenDialog(this);
515 if (value == JalviewFileChooser.APPROVE_OPTION)
517 jalview.bin.Cache.applicationProperties.setProperty(
518 "DEFAULT_FILE_FORMAT", chooser.getSelectedFormat());
519 startupFileTextfield.setText(chooser.getSelectedFile()
530 public void cancel_actionPerformed(ActionEvent e)
534 wsPrefs.updateWsMenuConfig(true);
535 wsPrefs.refreshWs_actionPerformed(e);
536 frame.setClosed(true);
537 } catch (Exception ex)
548 public void annotations_actionPerformed(ActionEvent e)
550 conservation.setEnabled(annotations.isSelected());
551 quality.setEnabled(annotations.isSelected());
552 identity.setEnabled(annotations.isSelected());
553 showGroupConsensus.setEnabled(annotations.isSelected());
554 showGroupConservation.setEnabled(annotations.isSelected());
555 showConsensHistogram.setEnabled(annotations.isSelected()
556 && (identity.isSelected() || showGroupConsensus.isSelected()));
557 showConsensLogo.setEnabled(annotations.isSelected()
558 && (identity.isSelected() || showGroupConsensus.isSelected()));
561 public void newLink_actionPerformed(ActionEvent e)
564 GSequenceLink link = new GSequenceLink();
565 boolean valid = false;
568 if (JOptionPane.showInternalConfirmDialog(Desktop.desktop, link,
569 MessageManager.getString("label.new_sequence_url_link"), JOptionPane.OK_CANCEL_OPTION, -1,
570 null) == JOptionPane.OK_OPTION)
572 if (link.checkValid())
574 nameLinks.addElement(link.getName());
575 urlLinks.addElement(link.getURL());
587 public void editLink_actionPerformed(ActionEvent e)
589 GSequenceLink link = new GSequenceLink();
591 int index = linkNameList.getSelectedIndex();
594 JOptionPane.showInternalMessageDialog(Desktop.desktop,
595 MessageManager.getString("label.no_link_selected"), MessageManager.getString("label.no_link_selected"),
596 JOptionPane.WARNING_MESSAGE);
600 link.setName(nameLinks.elementAt(index).toString());
601 link.setURL(urlLinks.elementAt(index).toString());
603 boolean valid = false;
607 if (JOptionPane.showInternalConfirmDialog(Desktop.desktop, link,
608 MessageManager.getString("label.new_sequence_url_link"), JOptionPane.OK_CANCEL_OPTION, -1,
609 null) == JOptionPane.OK_OPTION)
611 if (link.checkValid())
613 nameLinks.setElementAt(link.getName(), index);
614 urlLinks.setElementAt(link.getURL(), index);
627 public void deleteLink_actionPerformed(ActionEvent e)
629 int index = linkNameList.getSelectedIndex();
632 JOptionPane.showInternalMessageDialog(Desktop.desktop,
633 MessageManager.getString("label.no_link_selected"), MessageManager.getString("label.no_link_selected"),
634 JOptionPane.WARNING_MESSAGE);
637 nameLinks.removeElementAt(index);
638 urlLinks.removeElementAt(index);
642 void updateLinkData()
644 linkNameList.setListData(nameLinks);
645 linkURLList.setListData(urlLinks);
648 public void defaultBrowser_mouseClicked(MouseEvent e)
650 JFileChooser chooser = new JFileChooser(".");
651 chooser.setDialogTitle("Select default web browser");
653 int value = chooser.showOpenDialog(this);
655 if (value == JFileChooser.APPROVE_OPTION)
657 defaultBrowser.setText(chooser.getSelectedFile().getAbsolutePath());
666 * jalview.jbgui.GPreferences#showunconserved_actionPerformed(java.awt.event
669 protected void showunconserved_actionPerformed(ActionEvent e)
671 // TODO Auto-generated method stub
672 super.showunconserved_actionPerformed(e);
675 private void jbInit() throws Exception
679 public static Collection getGroupURLLinks()
681 return groupURLLinks;
684 public void minColour_actionPerformed()
686 Color col = JColorChooser.showDialog(this,
687 "Select Colour for Minimum Value", minColour.getBackground());
690 minColour.setBackground(col);
695 public void maxColour_actionPerformed()
697 Color col = JColorChooser.showDialog(this,
698 "Select Colour for Maximum Value", maxColour.getBackground());
701 maxColour.setBackground(col);
707 protected void userIdWidth_actionPerformed()
711 String val = userIdWidth.getText().trim();
712 if (val.length() > 0)
714 Integer iw = Integer.parseInt(val);
715 if (iw.intValue() < 12)
717 throw new NumberFormatException();
719 userIdWidth.setText(iw.toString());
721 } catch (NumberFormatException x)
724 .showInternalMessageDialog(
726 "The user defined width for the\nannotation and sequence ID columns\nin exported figures must be\nat least 12 pixels wide.",
727 "Invalid ID Column width",
728 JOptionPane.WARNING_MESSAGE);
729 userIdWidth.setText("");
734 protected void autoIdWidth_actionPerformed()
736 userIdWidth.setEnabled(!autoIdWidth.isSelected());
737 userIdWidthlabel.setEnabled(!autoIdWidth.isSelected());