From bc5214395905c64ca2a05df5f43a6dd67dd3dd20 Mon Sep 17 00:00:00 2001 From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04> Date: Thu, 3 May 2007 12:57:01 +0000 Subject: [PATCH] fixes and updates git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@5999 ee4ac58c-ac51-4696-9907-e4b3aa274f04 --- .../genebuilder/GeneComponentTree.java | 8 +- .../genebuilder/GeneViewerPanel.java | 9 +- .../components/genebuilder/cv/CVPanel.java | 83 +++++++++++++++- .../genebuilder/cv/ControlledCurationBox.java | 98 +++++++++++++++++-- .../components/genebuilder/cv/GoBox.java | 14 ++- 5 files changed, 193 insertions(+), 19 deletions(-) diff --git a/uk/ac/sanger/artemis/components/genebuilder/GeneComponentTree.java b/uk/ac/sanger/artemis/components/genebuilder/GeneComponentTree.java index 9036142a6..ab2d1eca8 100644 --- a/uk/ac/sanger/artemis/components/genebuilder/GeneComponentTree.java +++ b/uk/ac/sanger/artemis/components/genebuilder/GeneComponentTree.java @@ -20,7 +20,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/genebuilder/GeneComponentTree.java,v 1.18 2007-05-01 09:36:42 tjc Exp $ + * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/genebuilder/GeneComponentTree.java,v 1.19 2007-05-03 12:57:01 tjc Exp $ */ package uk.ac.sanger.artemis.components.genebuilder; @@ -351,7 +351,11 @@ public class GeneComponentTree extends JTree if(feature == null) feature = new uk.ac.sanger.artemis.Feature(embl_feature); - gene_builder.setActiveFeature(feature, true); + boolean isSet = true; + if(feature.isReadOnly()) + isSet = false; + + gene_builder.setActiveFeature(feature, isSet); if(selection != null) selection.set(feature); } diff --git a/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java b/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java index 5ebfb1cfb..dd0279de5 100644 --- a/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java +++ b/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java @@ -20,7 +20,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java,v 1.50 2007-05-01 15:02:18 tjc Exp $ + * $Header: //tmp/pathsoft/artemis/uk/ac/sanger/artemis/components/genebuilder/GeneViewerPanel.java,v 1.51 2007-05-03 12:57:01 tjc Exp $ */ package uk.ac.sanger.artemis.components.genebuilder; @@ -1654,8 +1654,13 @@ public class GeneViewerPanel extends JPanel { selection.set( (uk.ac.sanger.artemis.Feature)((Feature)feature).getUserData()); + + boolean isSet = true; + if(((Feature)feature).isReadOnly()) + isSet = false; + gene_builder.setActiveFeature( - (uk.ac.sanger.artemis.Feature)((Feature)feature).getUserData(), true); + (uk.ac.sanger.artemis.Feature)((Feature)feature).getUserData(), isSet); } else { diff --git a/uk/ac/sanger/artemis/components/genebuilder/cv/CVPanel.java b/uk/ac/sanger/artemis/components/genebuilder/cv/CVPanel.java index 02b0fddb8..f3d11fe57 100644 --- a/uk/ac/sanger/artemis/components/genebuilder/cv/CVPanel.java +++ b/uk/ac/sanger/artemis/components/genebuilder/cv/CVPanel.java @@ -77,6 +77,10 @@ public class CVPanel extends JPanel private JExtendedComboBox evidenceList; + private JButton hide_show_CC; + private JButton hide_show_GO; + + public CVPanel(final Feature feature) { super(new BorderLayout()); @@ -141,6 +145,21 @@ public class CVPanel extends JPanel if(this_qualifier.getName().equals("GO")) { + final Box yBox = Box.createVerticalBox(); + if(hide_show_GO == null) + hide_show_GO = new JButton("-"); + + addHideShowButton(yBox, hide_show_GO); + + Box xLabel = Box.createHorizontalBox(); + JLabel lab = new JLabel("GO terms"); + lab.setFont(lab.getFont().deriveFont(Font.BOLD)); + xLabel.add(lab); + xLabel.add(Box.createHorizontalGlue()); + xLabel.add(hide_show_GO); + + cvBox.add(xLabel); + n++; final StringVector qualifier_strings = this_qualifier.getValues(); @@ -161,8 +180,11 @@ public class CVPanel extends JPanel xBox.add(Box.createHorizontalGlue()); xBox.add(getRemoveButton(this_qualifier, v_index)); - cvBox.add(xBox); + yBox.add(xBox); } + cvBox.add(yBox); + if(hide_show_GO.getText().equals("+")) + yBox.setVisible(false); } } @@ -179,7 +201,21 @@ public class CVPanel extends JPanel if(this_qualifier.getName().equals("controlled_curation")) { final StringVector qualifier_strings = this_qualifier.getValues(); - + + final Box yBox = Box.createVerticalBox(); + if(hide_show_CC == null) + hide_show_CC = new JButton("-"); + + addHideShowButton(yBox, hide_show_CC); + + Box xLabel = Box.createHorizontalBox(); + JLabel lab = new JLabel("Controlled Curation"); + lab.setFont(lab.getFont().deriveFont(Font.BOLD)); + xLabel.add(lab); + xLabel.add(Box.createHorizontalGlue()); + xLabel.add(hide_show_CC); + cvBox.add(xLabel); + for(int value_index = 0; value_index < qualifier_strings.size(); ++value_index) { @@ -192,14 +228,17 @@ public class CVPanel extends JPanel ControlledCurationBox ccBox = new ControlledCurationBox(this_qualifier, qualifierString, value_index, - dimension4, go_dimension); + dimension, go_dimension); editableComponents.add(ccBox); xBox = ccBox.getBox(); xBox.add(Box.createHorizontalGlue()); xBox.add(getRemoveButton(this_qualifier, v_index)); - cvBox.add(xBox); + yBox.add(xBox); } + cvBox.add(yBox); + if(hide_show_CC.getText().equals("+")) + yBox.setVisible(false); } } @@ -306,6 +345,42 @@ public class CVPanel extends JPanel return cvBox; } + /** + * Add hide/show button to CV section + * @param box + */ + private void addHideShowButton(final Box box, final JButton hide_show) + { + hide_show.setOpaque(false); + + // remove any old listeners + ActionListener l[] = hide_show.getActionListeners(); + if(l != null) + for(int i=0;i<l.length;i++) + hide_show.removeActionListener(l[i]); + + hide_show.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + if(hide_show.getText().equals("-")) + { + hide_show.setText("+"); + box.setVisible(false); + } + else + { + hide_show.setText("-"); + box.setVisible(true); + } + } + }); + } + + /** + * Separator between CV's + * @param cvBox + */ private void addSeparator(final Box cvBox) { JSeparator separator = new JSeparator(); diff --git a/uk/ac/sanger/artemis/components/genebuilder/cv/ControlledCurationBox.java b/uk/ac/sanger/artemis/components/genebuilder/cv/ControlledCurationBox.java index a7e292efc..2fdc9ec40 100644 --- a/uk/ac/sanger/artemis/components/genebuilder/cv/ControlledCurationBox.java +++ b/uk/ac/sanger/artemis/components/genebuilder/cv/ControlledCurationBox.java @@ -27,10 +27,10 @@ package uk.ac.sanger.artemis.components.genebuilder.cv; import java.awt.Dimension; import javax.swing.Box; -import javax.swing.JLabel; import javax.swing.JTextField; import uk.ac.sanger.artemis.components.Splash; +import uk.ac.sanger.artemis.components.genebuilder.JExtendedComboBox; import uk.ac.sanger.artemis.io.Qualifier; import uk.ac.sanger.artemis.io.QualifierVector; import uk.ac.sanger.artemis.util.StringVector; @@ -40,6 +40,9 @@ class ControlledCurationBox extends AbstractCvBox private Box xBox; private int value_index; private JTextField termTextField; + private JTextField dbxrefTextField; + private JExtendedComboBox evidenceList; + private JTextField qualfTextField; private DatePanel dateField; private String origQualifierString; private Qualifier origQualifier; @@ -55,23 +58,66 @@ class ControlledCurationBox extends AbstractCvBox this.value_index = value_index; this.xBox = Box.createHorizontalBox(); - JLabel cclabel = new JLabel("controlled_curation"); - if(go_dimension != null) - cclabel.setPreferredSize(go_dimension); + //JLabel cclabel = new JLabel("controlled_curation"); + //if(go_dimension != null) + // cclabel.setPreferredSize(go_dimension); - xBox.add(cclabel); + //xBox.add(cclabel); String term = getField("term=", qualifierString); termTextField = new JTextField(term); termTextField.setOpaque(false); termTextField.setEditable(false); termTextField.setToolTipText("term column"); - termTextField.setPreferredSize(dimension); - termTextField.setMaximumSize(dimension); + + if(go_dimension != null) + { + final Dimension d = new Dimension(go_dimension.width+dimension.width, + dimension.height); + termTextField.setPreferredSize(d); + termTextField.setMaximumSize(d); + } + else + { + termTextField.setPreferredSize(dimension); + termTextField.setMaximumSize(dimension); + } termTextField.setCaretPosition(0); xBox.add(termTextField); + String dbxref = getField("db_xref=", qualifierString); + dbxrefTextField = new JTextField(dbxref); + dbxrefTextField.setToolTipText("dbxref column"); + dbxrefTextField.setPreferredSize(dimension); + dbxrefTextField.setMaximumSize(dimension); + dbxrefTextField.setActionCommand("db_xref="); + xBox.add(dbxrefTextField); + + // feature_cvterm_prop's + String evidence = getField("evidence=", qualifierString); + + evidenceList = new JExtendedComboBox(GoBox.evidenceCodes[1]); + evidenceList.setOpaque(false); + evidenceList.setToolTipText("evidence column"); + evidenceList.setSelectedIndex( GoBox.getEvidenceIndex(evidence) ); + + Dimension d = evidenceList.getPreferredSize(); + d = new Dimension(80,(int)d.getHeight()); + evidenceList.setPreferredSize(d); + evidenceList.setMaximumSize(d); + evidenceList.setActionCommand("evidence="); + xBox.add(evidenceList); + + String qual = getField("qualifier=", qualifierString); + qualfTextField = new JTextField(qual); + qualfTextField.setToolTipText("qualifier column"); + qualfTextField.setPreferredSize(dimension); + qualfTextField.setMaximumSize(dimension); + qualfTextField.setActionCommand("qualifier="); + xBox.add(qualfTextField); + + dateField = new DatePanel(getField("date=", qualifierString), dimension.height); @@ -82,9 +128,23 @@ class ControlledCurationBox extends AbstractCvBox protected boolean isQualifierChanged() { - String old = getField("date=", origQualifierString); + String old = getField("db_xref=", origQualifierString); + if(!old.equals(dbxrefTextField.getText().trim())) + return true; + + old = getField("evidence=", origQualifierString); + if(!(old.equals("") && evidenceList.getSelectedIndex() == -1) ) + if(!old.equals(GoBox.evidenceCodes[2][ evidenceList.getSelectedIndex() ])) + return true; + + old = getField("qualifier=", origQualifierString); + if(!old.equals(qualfTextField.getText())) + return true; + + old = getField("date=", origQualifierString); if(!old.equals(dateField.getText())) return true; + return false; } @@ -116,6 +176,28 @@ class ControlledCurationBox extends AbstractCvBox newQualifierString); } + old = getField("db_xref=", origQualifierString); + if(!old.equals(dbxrefTextField.getText().trim())) + { + newQualifierString = changeField("db_xref=", dbxrefTextField.getText().trim(), + newQualifierString); + } + + old = getField("evidence=", origQualifierString); + if(evidenceList.getSelectedIndex() > -1 && + !old.equals(GoBox.evidenceCodes[2][ evidenceList.getSelectedIndex() ])) + { + newQualifierString = changeField("evidence=", GoBox.evidenceCodes[2][ evidenceList.getSelectedIndex() ], + newQualifierString); + } + + old = getField("qualifier=", origQualifierString); + if(!old.equals(qualfTextField.getText())) + { + newQualifierString = changeField("qualifier=", qualfTextField.getText().trim(), + newQualifierString); + } + return newQualifierString; } diff --git a/uk/ac/sanger/artemis/components/genebuilder/cv/GoBox.java b/uk/ac/sanger/artemis/components/genebuilder/cv/GoBox.java index 35dd50d43..6453a0d2d 100644 --- a/uk/ac/sanger/artemis/components/genebuilder/cv/GoBox.java +++ b/uk/ac/sanger/artemis/components/genebuilder/cv/GoBox.java @@ -198,13 +198,21 @@ class GoBox extends AbstractCvBox xBox.add(dateField.getDateSpinner()); } - private int getEvidenceIndex(String evidence) + protected static int getEvidenceIndex(String evidence) { for(int i=0; i<evidenceCodes[2].length; i++) { - if(evidenceCodes[2][i].equals(evidence)) + if(evidenceCodes[2][i].equalsIgnoreCase(evidence)) return i; } + + // this is mainly to catch RCA + // - reviewed computational analysis (inferred from missing) + /*for(int i=0; i<evidenceCodes[2].length; i++) + { + if(evidenceCodes[2][i].indexOf(evidence) > -1) + return i; + }*/ return -1; } @@ -229,7 +237,7 @@ class GoBox extends AbstractCvBox return true; old = getField("evidence=", origQualifierString); - if(!old.equals(evidenceCodes[2][ evidenceList.getSelectedIndex() ])) + if(!old.equalsIgnoreCase(evidenceCodes[2][ evidenceList.getSelectedIndex() ])) return true; old = getField("qualifier=", origQualifierString); -- GitLab