X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FUserDefinedColours.java;h=20f68b4c2bdf7ae3e6a8eb9f6f5460d224bf7100;hb=97de0d0525d1b7a81a7d8164fae39e6538a583e5;hp=7cd039161f186a169f8f6b4351e81f6dac46e7ff;hpb=55e2e9b22b133db8b9ff0979b0338a33081fc8fd;p=jalview.git diff --git a/src/jalview/appletgui/UserDefinedColours.java b/src/jalview/appletgui/UserDefinedColours.java index 7cd0391..20f68b4 100755 --- a/src/jalview/appletgui/UserDefinedColours.java +++ b/src/jalview/appletgui/UserDefinedColours.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -28,7 +28,7 @@ import jalview.datamodel.*; import jalview.schemes.*; public class UserDefinedColours - extends Panel + extends Panel implements ActionListener, AdjustmentListener { AlignmentPanel ap; @@ -37,6 +37,11 @@ public class UserDefinedColours Vector oldColours = new Vector(); ColourSchemeI oldColourScheme; Frame frame; + MCview.AppletPDBCanvas pdbcanvas; + + Component caller; + String originalLabel; + Color originalColour; int R = 0, G = 0, B = 0; @@ -48,20 +53,6 @@ public class UserDefinedColours public UserDefinedColours(AlignmentPanel ap, SequenceGroup sg) { - try { - jbInit(); - } catch (Exception e) { - e.printStackTrace(); - } - frame = new Frame(); - frame.add(this); - jalview.bin.JalviewLite.addFrame(frame, "User defined colours", 420, 345); - - if (sg != null) - { - frame.setTitle(frame.getTitle() + " (" + sg.getName() + ")"); - } - this.ap = ap; seqGroup = sg; @@ -74,6 +65,77 @@ public class UserDefinedColours oldColourScheme = ap.av.getGlobalColourScheme(); } + init(); + } + + public UserDefinedColours(MCview.AppletPDBCanvas pdb) + { + this.pdbcanvas = pdb; + init(); + } + + public UserDefinedColours(Component caller, + String label, + Color colour) + { + this.caller = caller; + originalColour = colour; + originalLabel = label; + init(); + remove(buttonPanel); + + setTargetColour(colour); + + okcancelPanel.setBounds(new Rectangle(0, 113, 400, 35)); + frame.setTitle("User Defined Colours - "+label); + frame.setSize(420, 200); + } + + public void actionPerformed(ActionEvent evt) + { + if(evt.getSource()==okButton) + okButton_actionPerformed(); + else if(evt.getSource()==applyButton) + applyButton_actionPerformed(); + else if(evt.getSource()==cancelButton) + cancelButton_actionPerformed(); + else if(evt.getSource()==rText) + rText_actionPerformed(); + else if (evt.getSource() == gText) + gText_actionPerformed(); + else if (evt.getSource() == bText) + bText_actionPerformed(); +} + + public void adjustmentValueChanged(AdjustmentEvent evt) + { + if(evt.getSource()==rScroller) + rScroller_adjustmentValueChanged(); + else if(evt.getSource()==gScroller) + gScroller_adjustmentValueChanged(); + else if(evt.getSource()==bScroller) + bScroller_adjustmentValueChanged(); +} + + void init() + { + try + { + jbInit(); + } + catch (Exception e) + { + e.printStackTrace(); + } + frame = new Frame(); + frame.add(this); + jalview.bin.JalviewLite.addFrame(frame, "User defined colours", 420, 345); + + if (seqGroup != null) + { + frame.setTitle(frame.getTitle() + " (" + seqGroup.getName() + ")"); + } + for (int i = 0; i < 20; i++) { makeButton(ResidueProperties.aa2Triplet.get(ResidueProperties.aa[i]) + @@ -86,62 +148,60 @@ public class UserDefinedColours makeButton("Gap", "'.','-',' '"); validate(); - } - - protected void rText_actionPerformed(ActionEvent e) + protected void rText_actionPerformed() { try { int i = Integer.parseInt(rText.getText()); rScroller.setValue(i); - rScroller_adjustmentValueChanged(null); + rScroller_adjustmentValueChanged(); } catch (NumberFormatException ex) {} } - protected void gText_actionPerformed(ActionEvent e) + protected void gText_actionPerformed() { try { int i = Integer.parseInt(gText.getText()); gScroller.setValue(i); - gScroller_adjustmentValueChanged(null); + gScroller_adjustmentValueChanged(); } catch (NumberFormatException ex) {} } - protected void bText_actionPerformed(ActionEvent e) + protected void bText_actionPerformed() { try { int i = Integer.parseInt(bText.getText()); bScroller.setValue(i); - bScroller_adjustmentValueChanged(null); + bScroller_adjustmentValueChanged(); } catch (NumberFormatException ex) {} } - protected void rScroller_adjustmentValueChanged(AdjustmentEvent e) + protected void rScroller_adjustmentValueChanged() { R = rScroller.getValue(); rText.setText(R + ""); colourChanged(); } - protected void gScroller_adjustmentValueChanged(AdjustmentEvent e) + protected void gScroller_adjustmentValueChanged() { G = gScroller.getValue(); gText.setText(G + ""); colourChanged(); } - protected void bScroller_adjustmentValueChanged(AdjustmentEvent e) + protected void bScroller_adjustmentValueChanged() { B = bScroller.getValue(); bText.setText(B + ""); @@ -161,10 +221,8 @@ public class UserDefinedColours } } - public void colourButtonPressed(MouseEvent e) + void setTargetColour(Color col) { - selectedButton = (Button) e.getSource(); - Color col = selectedButton.getBackground(); R = col.getRed(); G = col.getGreen(); B = col.getBlue(); @@ -174,10 +232,15 @@ public class UserDefinedColours rText.setText(R + ""); gText.setText(G + ""); bText.setText(B + ""); - colourChanged(); } + public void colourButtonPressed(MouseEvent e) + { + selectedButton = (Button) e.getSource(); + setTargetColour(selectedButton.getBackground()); + } + void makeButton(String label, String aa) { final Button button = new Button(); @@ -206,14 +269,31 @@ public class UserDefinedColours buttonPanel.add(button, null); } - protected void okButton_actionPerformed(ActionEvent e) + protected void okButton_actionPerformed() { - applyButton_actionPerformed(null); + applyButton_actionPerformed(); frame.setVisible(false); } - protected void applyButton_actionPerformed(ActionEvent e) + protected void applyButton_actionPerformed() { + if (caller != null) + { + if(caller instanceof FeatureSettings) + ((FeatureSettings)caller).setUserColour + (originalLabel, new Color(R,G,B)); + else if(caller instanceof AnnotationColourChooser) + { + if (originalLabel.equals("Min Colour")) + ( (AnnotationColourChooser) caller).minColour_actionPerformed + (new Color(R, G, B)); + else + ( (AnnotationColourChooser) caller).maxColour_actionPerformed + (new Color(R, G, B)); + } + return; + } + Color[] newColours = new Color[24]; for (int i = 0; i < 24; i++) @@ -223,24 +303,49 @@ public class UserDefinedColours } UserColourScheme ucs = new UserColourScheme(newColours); - ucs.setThreshold(0, ap.av.getIgnoreGapsConsensus()); + if(ap!=null) + ucs.setThreshold(0, ap.av.getIgnoreGapsConsensus()); - if (seqGroup != null) + if(ap!=null) { - seqGroup.cs = ucs; + if (seqGroup != null) + { + seqGroup.cs = ucs; + } + else + { + ap.av.setGlobalColourScheme(ucs); + } + ap.seqPanel.seqCanvas.img = null; + ap.repaint(); } - else + else if(pdbcanvas!=null) { - ap.av.setGlobalColourScheme(ucs); + pdbcanvas.pdb.setColours(ucs); + pdbcanvas.updateSeqColours(); } - - ap.seqPanel.seqCanvas.img = null; - ap.repaint(); } - protected void cancelButton_actionPerformed(ActionEvent e) + protected void cancelButton_actionPerformed() { + if (caller != null) + { + if(caller instanceof FeatureSettings) + ((FeatureSettings)caller).setUserColour + (originalLabel, originalColour); + else if (caller instanceof AnnotationColourChooser) + { + if (originalLabel.equals("Min Colour")) + ( (AnnotationColourChooser) caller).minColour_actionPerformed + (originalColour); + else + ( (AnnotationColourChooser) caller).maxColour_actionPerformed + (originalColour); + } + frame.setVisible(false); + return; + } Color[] newColours = new Color[24]; for (int i = 0; i < 24; i++) @@ -251,24 +356,30 @@ public class UserDefinedColours UserColourScheme ucs = new UserColourScheme(newColours); - if (seqGroup != null) + if(ap!=null) { - seqGroup.cs = ucs; + if (seqGroup != null) + { + seqGroup.cs = ucs; + } + else + { + ap.av.setGlobalColourScheme(ucs); + } + ap.repaint(); } - else + else if(pdbcanvas!=null) { - ap.av.setGlobalColourScheme(ucs); + pdbcanvas.pdb.setColours(ucs); } - ap.repaint(); - frame.setVisible(false); } protected Panel buttonPanel = new Panel(); protected GridLayout gridLayout = new GridLayout(); - Panel jPanel2 = new Panel(); + Panel okcancelPanel = new Panel(); protected Button okButton = new Button(); protected Button applyButton = new Button(); protected Button cancelButton = new Button(); @@ -290,27 +401,15 @@ public class UserDefinedColours gridLayout.setRows(4); okButton.setFont(new java.awt.Font("Verdana", 0, 11)); okButton.setLabel("OK"); - okButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - okButton_actionPerformed(e); - } - }); + okButton.addActionListener(this); applyButton.setFont(new java.awt.Font("Verdana", 0, 11)); applyButton.setLabel("Apply"); - applyButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - applyButton_actionPerformed(e); - } - }); + applyButton.addActionListener(this); cancelButton.setFont(new java.awt.Font("Verdana", 0, 11)); cancelButton.setLabel("Cancel"); - cancelButton.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - cancelButton_actionPerformed(e); - } - }); + cancelButton.addActionListener(this); this.setBackground(new Color(212, 208, 223)); - jPanel2.setBounds(new Rectangle(0, 265, 400, 35)); + okcancelPanel.setBounds(new Rectangle(0, 265, 400, 35)); buttonPanel.setBounds(new Rectangle(0, 123, 400, 142)); rScroller.setMaximum(256); rScroller.setMinimum(0); @@ -318,22 +417,14 @@ public class UserDefinedColours rScroller.setUnitIncrement(1); rScroller.setVisibleAmount(1); rScroller.setBounds(new Rectangle(36, 27, 119, 19)); - rScroller.addAdjustmentListener(new java.awt.event.AdjustmentListener() { - public void adjustmentValueChanged(AdjustmentEvent e) { - rScroller_adjustmentValueChanged(e); - } - }); + rScroller.addAdjustmentListener(this); label1.setAlignment(Label.RIGHT); label1.setText("R"); label1.setBounds(new Rectangle(19, 30, 16, 15)); rText.setFont(new java.awt.Font("Dialog", Font.PLAIN, 10)); rText.setText("0 "); rText.setBounds(new Rectangle(156, 27, 53, 19)); - rText.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - rText_actionPerformed(e); - } - }); + rText.addActionListener(this); label4.setAlignment(Label.RIGHT); label4.setText("G"); label4.setBounds(new Rectangle(15, 56, 20, 15)); @@ -343,19 +434,11 @@ public class UserDefinedColours gScroller.setUnitIncrement(1); gScroller.setVisibleAmount(1); gScroller.setBounds(new Rectangle(35, 52, 120, 20)); - gScroller.addAdjustmentListener(new java.awt.event.AdjustmentListener() { - public void adjustmentValueChanged(AdjustmentEvent e) { - gScroller_adjustmentValueChanged(e); - } - }); + gScroller.addAdjustmentListener(this); gText.setFont(new java.awt.Font("Dialog", Font.PLAIN, 10)); gText.setText("0 "); gText.setBounds(new Rectangle(156, 52, 53, 20)); - gText.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - gText_actionPerformed(e); - } - }); + gText.addActionListener(this); label5.setAlignment(Label.RIGHT); label5.setText("B"); label5.setBounds(new Rectangle(14, 82, 20, 15)); @@ -365,25 +448,17 @@ public class UserDefinedColours bScroller.setUnitIncrement(1); bScroller.setVisibleAmount(1); bScroller.setBounds(new Rectangle(35, 78, 120, 20)); - bScroller.addAdjustmentListener(new java.awt.event.AdjustmentListener() { - public void adjustmentValueChanged(AdjustmentEvent e) { - bScroller_adjustmentValueChanged(e); - } - }); + bScroller.addAdjustmentListener(this); bText.setFont(new java.awt.Font("Dialog", Font.PLAIN, 10)); bText.setText("0 "); bText.setBounds(new Rectangle(157, 78, 52, 20)); - bText.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(ActionEvent e) { - bText_actionPerformed(e); - } - }); + bText.addActionListener(this); target.setBackground(Color.black); target.setBounds(new Rectangle(229, 26, 134, 79)); - this.add(jPanel2, null); - jPanel2.add(okButton, null); - jPanel2.add(applyButton, null); - jPanel2.add(cancelButton, null); + this.add(okcancelPanel, null); + okcancelPanel.add(okButton, null); + okcancelPanel.add(applyButton, null); + okcancelPanel.add(cancelButton, null); this.add(buttonPanel, null); this.add(target, null); this.add(gScroller);