From: Nomi H. <no...@us...> - 2004-04-08 23:55:48
|
Update of /cvsroot/gmod/apollo/src/java/apollo/gui In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11027/apollo/gui Modified Files: PreferencesDialog.java PrefsPanel.java Log Message: Preferences editor now shows the default style file (the one in APOLLO_ROOT/conf) in gray text in an uneditable text panel, and below it your personal (editable) style file. Index: PreferencesDialog.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/PreferencesDialog.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** PreferencesDialog.java 2 Apr 2004 19:50:40 -0000 1.17 --- PreferencesDialog.java 8 Apr 2004 23:42:35 -0000 1.18 *************** *** 57,60 **** --- 57,61 ---- jbInit(); readPrefs(styleFileName); + copyStyleFile(styleFileName); } catch(Exception e) { e.printStackTrace(); *************** *** 64,68 **** /* Initialize layout and buttons */ private void jbInit() { ! setSize(new Dimension(600,500)); this.getContentPane().setLayout(new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS)); --- 65,69 ---- /* Initialize layout and buttons */ private void jbInit() { ! setSize(new Dimension(600,635)); this.getContentPane().setLayout(new BoxLayout(this.getContentPane(), BoxLayout.Y_AXIS)); *************** *** 82,85 **** --- 83,88 ---- } ); + + // Should we disable until they make some changes? restoreButton = new JButton("Restore original"); restoreButton.setBackground (Color.white); *************** *** 126,135 **** origText = apollo.util.IOUtil.readFile(styleFile); } catch ( Exception ex ) { ! System.out.println("PreferencesDialog.readPrefs: couldn't read " + styleFile); return; } if (origText != null) { ! prefsPanel.setText(origText); ! prefsPanel.addMessage("Preferences file: " + styleFile); } } --- 129,152 ---- origText = apollo.util.IOUtil.readFile(styleFile); } catch ( Exception ex ) { ! System.out.println("PreferencesDialog.readPrefs: couldn't read personal style file " + styleFile); ! return; ! } ! String confStyleFile = ""; ! String exampleText = ""; ! try { ! confStyleFile = styleFile; ! if (confStyleFile.indexOf("/") >= 0) ! confStyleFile = confStyleFile.substring(confStyleFile.lastIndexOf("/")+1); ! confStyleFile = apollo.util.IOUtil.findFile(apollo.util.IOUtil.getRootDir() + "/conf/" + confStyleFile); ! exampleText = apollo.util.IOUtil.readFile(confStyleFile); ! } catch ( Exception ex ) { ! System.out.println("PreferencesDialog.readPrefs: couldn't read default style file " + confStyleFile); return; } if (origText != null) { ! prefsPanel.setText(exampleText, "example"); ! prefsPanel.setText(origText, "personal"); ! prefsPanel.addMessage("Default preferences file: " + confStyleFile, "default"); ! prefsPanel.addMessage("Your personal preferences file: " + styleFile, "personal"); } } *************** *** 147,160 **** } - // First copy the original style file to stylefilename.orig String orig = styleFileName + ".orig"; ! if (!apollo.util.IOUtil.copyFile(styleFileName, orig)) { ! String message = "The directory where " + styleFileName + " lives is unwriteable.\nSorry--you will not be able to edit preferences.\nGive your sysadmin this message and see if they can fix the permissions for you."; ! System.err.println(message); ! JOptionPane.showMessageDialog(null,message,"Warning",JOptionPane.WARNING_MESSAGE); return; - } - System.out.println("Original style file saved in " + orig); - restoreButton.setEnabled(true); // Save the new style file --- 164,170 ---- } String orig = styleFileName + ".orig"; ! if (!copyStyleFile(styleFileName)) return; // Save the new style file *************** *** 175,187 **** } ! private boolean origFileExists(String fileName) { ! String orig = fileName + ".orig"; ! File handle = new File(orig); ! if (handle.exists()) ! return true; ! else return false; } private void close() { setVisible(false); --- 185,212 ---- } ! private boolean copyStyleFile(String styleFileName) { ! // First copy the original style file to stylefilename.orig ! String orig = styleFileName + ".orig"; ! if (!apollo.util.IOUtil.copyFile(styleFileName, orig)) { ! String message = "The directory where " + styleFileName + " lives is unwriteable.\nSorry--you will not be able to edit preferences.\nGive your sysadmin this message and see if they can fix the permissions for you."; ! System.err.println(message); ! JOptionPane.showMessageDialog(null,message,"Warning",JOptionPane.WARNING_MESSAGE); return false; + } + System.out.println("Original style file saved in " + orig); + restoreButton.setEnabled(true); + return true; } + // Not used + // private boolean origFileExists(String fileName) { + // String orig = fileName + ".orig"; + // File handle = new File(orig); + // if (handle.exists()) + // return true; + // else + // return false; + // } + private void close() { setVisible(false); *************** *** 230,236 **** // If there were errors, restore the original style from origStyleFile if (!(newStyle.getErrors().equals(""))) { ! String msg = "\nNOT SAVING your changes to " + newStyleFile; System.err.println(msg); JOptionPane.showMessageDialog(null, newStyle.getErrors()+"\n"+msg); restoreOriginal(newStyleFile, origStyleFile); } --- 255,262 ---- // If there were errors, restore the original style from origStyleFile if (!(newStyle.getErrors().equals(""))) { ! String msg = "\nNOT SAVING your changes to " + newStyleFile + "--restoring original style file " + origStyleFile; System.err.println(msg); JOptionPane.showMessageDialog(null, newStyle.getErrors()+"\n"+msg); + // Uh oh, if the orig is also bad, we end up looping. restoreOriginal(newStyleFile, origStyleFile); } *************** *** 267,271 **** // If personal style file doesn't exist yet, create it if (!personalStyle.exists()) { ! String comments = "// This is your personal " + name + ".\n// All that needs to go in it is the parameters that you want to change from the default.\n// Press \"Help\" for more information about the parameters that you can set.\n\n"; try { apollo.util.IOUtil.writeFile(styleFileName, comments); --- 293,297 ---- // If personal style file doesn't exist yet, create it if (!personalStyle.exists()) { ! String comments = "// This is your personal " + name + ".\n// All that needs to go in it is the parameters that you want to change from the default.\n// The default preferences file above shows you most of the parameters you can set.\n// Press \"Help\" for more information about the parameters.\n\n"; try { apollo.util.IOUtil.writeFile(styleFileName, comments); Index: PrefsPanel.java =================================================================== RCS file: /cvsroot/gmod/apollo/src/java/apollo/gui/PrefsPanel.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** PrefsPanel.java 2 Apr 2004 19:50:40 -0000 1.6 --- PrefsPanel.java 8 Apr 2004 23:42:35 -0000 1.7 *************** *** 9,19 **** import apollo.config.Config; ! /** ! * PrefsPanel goes inside a PreferencesDialog window */ public class PrefsPanel extends JPanel { ! JTextArea textArea; Color bgColor; ! JLabel header; public PrefsPanel(PreferencesDialog parent, --- 9,24 ---- import apollo.config.Config; ! /** PrefsPanel goes inside a PreferencesDialog window. ! * 4/08/04: Since now your style file only needs to contain the DIFFS ! * from the default one, it's often rather empty. ! * Show, in another (unpersonal) text window, the contents of the default ! * style file, so user can see what they can change. */ public class PrefsPanel extends JPanel { ! JTextArea defaultTextArea; ! JTextArea personalTextArea; Color bgColor; ! JLabel defaultHeader; ! JLabel personalHeader; public PrefsPanel(PreferencesDialog parent, *************** *** 27,36 **** setBackground(bgColor); ! header = new JLabel(""); ! header.setForeground(Color.black); ! add(header, BorderLayout.NORTH); ! textArea = new JTextArea(); JScrollPane textScroll = new JScrollPane(); textScroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); --- 32,63 ---- setBackground(bgColor); ! setupTextArea("default"); ! setupTextArea("personal"); ! } ! private void setupTextArea(String which) { ! JTextArea textArea; ! JLabel header; ! Panel panel = new Panel(); ! panel.setLayout(new BorderLayout(10,5)); + boolean editable = true; + if (which.equals("default")) { + defaultTextArea = new JTextArea(); + textArea = defaultTextArea; + textArea.setRows(19); + editable = false; + textArea.setForeground(Color.gray); + defaultHeader = new JLabel(""); + header = defaultHeader; + } + else { + personalTextArea = new JTextArea(); + textArea = personalTextArea; + textArea.setRows(11); + personalHeader = new JLabel(""); + header = personalHeader; + } + header.setForeground(Color.black); JScrollPane textScroll = new JScrollPane(); textScroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED); *************** *** 39,59 **** textArea.setLineWrap(false); textArea.setWrapStyleWord(true); ! // textArea.setBorder(null); // ? ! // textArea.setFont(new Font("Courier",Font.PLAIN,10)); ! ! add(textScroll, BorderLayout.CENTER); textScroll.getViewport().add(textArea, null); } ! public void setText(String text) { textArea.setText(text); textArea.setCaretPosition(0); // Scroll text box up to top (default is scrolled to bottom) } public String getText() { ! return textArea.getText(); } ! public void addMessage(String text) { header.setText("<HTML><FONT FACE=Geneva,Dialog,Helvetica color=black><B>"+text+"</B></FONT></HTML>"); } --- 66,102 ---- textArea.setLineWrap(false); textArea.setWrapStyleWord(true); ! textArea.setEditable(editable); textScroll.getViewport().add(textArea, null); + + panel.add(header, BorderLayout.NORTH); + panel.add(textScroll, BorderLayout.CENTER); + + if (which.equals("default")) + add(panel, BorderLayout.NORTH); + else + add(panel, BorderLayout.SOUTH); } ! public void setText(String text, String which) { ! JTextArea textArea; ! if (which.equals("personal")) ! textArea = personalTextArea; ! else ! textArea = defaultTextArea; textArea.setText(text); textArea.setCaretPosition(0); // Scroll text box up to top (default is scrolled to bottom) } + /** It's only ever relevant to get text from the personal text area */ public String getText() { ! return personalTextArea.getText(); } ! public void addMessage(String text, String which) { ! JLabel header; ! if (which.equals("default")) ! header = defaultHeader; ! else ! header = personalHeader; header.setText("<HTML><FONT FACE=Geneva,Dialog,Helvetica color=black><B>"+text+"</B></FONT></HTML>"); } |