X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FUserDefinedColours.java;h=9e928d80a04eb81fed898d9c59220dece74c66bc;hb=bd7b3138379c2db8507fe7e8d25f5a921e2d9df7;hp=329050090760b5518227f879f35a9fafcd2f52b7;hpb=106a3890f956e2aa7780b2985f4326655912a558;p=jalview.git diff --git a/src/jalview/gui/UserDefinedColours.java b/src/jalview/gui/UserDefinedColours.java index 3290500..9e928d8 100755 --- a/src/jalview/gui/UserDefinedColours.java +++ b/src/jalview/gui/UserDefinedColours.java @@ -24,8 +24,6 @@ import jalview.bin.Cache; import jalview.io.JalviewFileChooser; import jalview.io.JalviewFileView; import jalview.jbgui.GUserDefinedColours; -import jalview.schemabinding.version2.Colour; -import jalview.schemabinding.version2.JalviewUserColours; import jalview.schemes.ColourSchemeI; import jalview.schemes.ColourSchemeLoader; import jalview.schemes.ColourSchemes; @@ -34,6 +32,10 @@ import jalview.schemes.UserColourScheme; import jalview.util.ColorUtils; import jalview.util.Format; import jalview.util.MessageManager; +import jalview.util.dialogrunner.RunResponse; +import jalview.xml.binding.jalview.JalviewUserColours; +import jalview.xml.binding.jalview.JalviewUserColours.Colour; +import jalview.xml.binding.jalview.ObjectFactory; import java.awt.Color; import java.awt.Font; @@ -51,6 +53,8 @@ import javax.swing.JButton; import javax.swing.JInternalFrame; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; +import javax.xml.bind.JAXBContext; +import javax.xml.bind.Marshaller; /** * This panel allows the user to assign colours to Amino Acid residue codes, and @@ -87,7 +91,7 @@ public class UserDefinedColours extends GUserDefinedColours * flag is true if the colour scheme has been changed since the * dialog was opened, or the changes last saved to file */ - boolean changed; + boolean changedButNotSaved; JInternalFrame frame; @@ -261,7 +265,7 @@ public class UserDefinedColours extends GUserDefinedColours button.setForeground(ColorUtils.brighterThan(newColour)); } - changed = true; + changedButNotSaved = true; } /** @@ -480,7 +484,9 @@ public class UserDefinedColours extends GUserDefinedColours */ protected void warnIfUnsavedChanges() { - if (!changed) + // BH 2018 no warning in JavaScript TODO + + if (/** @j2sNative true || */ !changedButNotSaved) { return; } @@ -499,20 +505,20 @@ public class UserDefinedColours extends GUserDefinedColours question, title, JvOptionPane.DEFAULT_OPTION, JvOptionPane.PLAIN_MESSAGE, null, options, options[0]); - boolean saved = false; if (response == 0) { /* - * prompt to save changes to file + * prompt to save changes to file; if done, + * resets 'changed' flag to false */ - saved = savebutton_actionPerformed(); + savebutton_actionPerformed(); } /* * if user chooses not to save (either in this dialog or in the * save as dialogs), treat this as a new user defined colour scheme */ - if (!saved) + if (changedButNotSaved) { /* * clear scheme name and re-apply as an anonymous scheme @@ -633,53 +639,54 @@ public class UserDefinedColours extends GUserDefinedColours { upperCaseButtons = new ArrayList<>(); lowerCaseButtons = new ArrayList<>(); - JalviewFileChooser chooser = new JalviewFileChooser("jc", "Jalview User Colours"); chooser.setFileView(new JalviewFileView()); chooser.setDialogTitle( MessageManager.getString("label.load_colour_scheme")); chooser.setToolTipText(MessageManager.getString("action.load")); - - int value = chooser.showOpenDialog(this); - - if (value != JalviewFileChooser.APPROVE_OPTION) - { - return; - } - File choice = chooser.getSelectedFile(); - Cache.setProperty(LAST_DIRECTORY, choice.getParent()); - - UserColourScheme ucs = ColourSchemeLoader - .loadColourScheme(choice.getAbsolutePath()); - Color[] colors = ucs.getColours(); - schemeName.setText(ucs.getSchemeName()); - - if (ucs.getLowerCaseColours() != null) - { - caseSensitive.setSelected(true); - lcaseColour.setEnabled(true); - resetButtonPanel(true); - for (int i = 0; i < lowerCaseButtons.size(); i++) - { - JButton button = lowerCaseButtons.get(i); - button.setBackground(ucs.getLowerCaseColours()[i]); - } - } - else - { - caseSensitive.setSelected(false); - lcaseColour.setEnabled(false); - resetButtonPanel(false); - } - - for (int i = 0; i < upperCaseButtons.size(); i++) - { - JButton button = upperCaseButtons.get(i); - button.setBackground(colors[i]); - } - - addNewColourScheme(choice.getPath()); + chooser.addResponse(0, new RunResponse(JalviewFileChooser.APPROVE_OPTION) + { + @Override + public void run() + { + File choice = chooser.getSelectedFile(); + Cache.setProperty(LAST_DIRECTORY, choice.getParent()); + + UserColourScheme ucs = ColourSchemeLoader + .loadColourScheme(choice.getAbsolutePath()); + Color[] colors = ucs.getColours(); + schemeName.setText(ucs.getSchemeName()); + + if (ucs.getLowerCaseColours() != null) + { + caseSensitive.setSelected(true); + lcaseColour.setEnabled(true); + resetButtonPanel(true); + for (int i = 0; i < lowerCaseButtons.size(); i++) + { + JButton button = lowerCaseButtons.get(i); + button.setBackground(ucs.getLowerCaseColours()[i]); + } + } + else + { + caseSensitive.setSelected(false); + lcaseColour.setEnabled(false); + resetButtonPanel(false); + } + + for (int i = 0; i < upperCaseButtons.size(); i++) + { + JButton button = upperCaseButtons.get(i); + button.setBackground(colors[i]); + } + + addNewColourScheme(choice.getPath()); + } + }); + + chooser.showOpenDialog(this); } /** @@ -723,12 +730,10 @@ public class UserDefinedColours extends GUserDefinedColours *