diff --git a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java index 8e00d327128cbc1ff1bdb3bc4b3b0cbfd74ac425..ea163b8b30a45b5507e6124f0a0d7968595328ce 100644 --- a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java +++ b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java @@ -1228,8 +1228,10 @@ public class ChadoTransactionManager { if(synonym_tags == null) { - synonym_tags = DatabaseDocument.getSynonymTypeNames( + if(GeneUtils.isDatabaseEntry(feature)) + synonym_tags = DatabaseDocument.getSynonymTypeNames( SYNONYM_TAG_CVNAME, feature); + if(synonym_tags == null || synonym_tags.length < 1) { logger4j.debug("Using default synonym names"); @@ -1250,6 +1252,12 @@ public class ChadoTransactionManager return false; } + public static String[] getSynonymTags() + { + return synonym_tags; + } + + /** * Compare the old and new keys and qualifiers and find the qualifiers * that have changed or been added and UPDATE, INSERT or DELETE accordingly. diff --git a/uk/ac/sanger/artemis/components/FeatureEdit.java b/uk/ac/sanger/artemis/components/FeatureEdit.java index 6b459dd7387a478e29adcea0e34ebcebf4fb40ff..1626ba3b8dde6429f4350ce7bb8caf75c3d61bfb 100644 --- a/uk/ac/sanger/artemis/components/FeatureEdit.java +++ b/uk/ac/sanger/artemis/components/FeatureEdit.java @@ -76,7 +76,6 @@ import java.util.Comparator; import javax.swing.*; - /** * FeatureEdit class * @@ -860,7 +859,6 @@ public class FeatureEdit extends JPanel } }); - final JCheckBox oneView = new JCheckBox("Overview", false); oneView.addItemListener(new ItemListener() { @@ -887,6 +885,12 @@ public class FeatureEdit extends JPanel fillerBox.add(Box.createHorizontalStrut( tabbedView.getPreferredSize().width )); } + else if(getFeature().getEmblFeature() instanceof GFFStreamFeature) + { + propertiesPanel = new PropertiesPanel(getFeature()); + addGffAnnotationView(lower_panel); + + } else lower_panel.add(new JScrollPane(qualifier_text_area), "Center"); @@ -1438,8 +1442,8 @@ public class FeatureEdit extends JPanel qualifier_text_area.setText(getQualifierString()); - if(GeneUtils.isDatabaseEntry(getFeature().getEmblFeature())) - { + if(getFeature().getEmblFeature() instanceof GFFStreamFeature) + { // load synonym if(cvForm != null) cvForm.updateFromFeature(getFeature()); @@ -1541,9 +1545,7 @@ public class FeatureEdit extends JPanel { qualifiers = qualifier_text_area.getParsedQualifiers(getEntryInformation ()); - - updateGffIds(qualifiers); - + // if using controlled vocab form if(cvForm != null) { @@ -1569,6 +1571,7 @@ public class FeatureEdit extends JPanel if(mapQualifiers != null && mapQualifiers.size() > 0) qualifiers.addAll(mapQualifiers); } + updateGffIds(qualifiers); if(matchForm != null) { @@ -1679,7 +1682,7 @@ public class FeatureEdit extends JPanel { final String newName = ((String) (qualifiers.getQualifierByName("ID").getValues().get(0))).trim(); final String oldName = ((String) (gffFeature.getQualifierByName("ID").getValues().get(0))).trim(); - + if(!newName.equals(oldName)) { int val = JOptionPane.showConfirmDialog(null, @@ -1704,7 +1707,7 @@ public class FeatureEdit extends JPanel } } } - catch(Exception e){ } + catch(Exception e){ e.printStackTrace(); } } } } diff --git a/uk/ac/sanger/artemis/components/genebuilder/GeneEditorPanel.java b/uk/ac/sanger/artemis/components/genebuilder/GeneEditorPanel.java index 5cf4c1d64d0455f5417677ea1d1518c5e6ccb42a..2851efa8f18712ce755160ef4ed94f8806442a42 100644 --- a/uk/ac/sanger/artemis/components/genebuilder/GeneEditorPanel.java +++ b/uk/ac/sanger/artemis/components/genebuilder/GeneEditorPanel.java @@ -40,7 +40,6 @@ import uk.ac.sanger.artemis.components.genebuilder.cv.CVPanel; import uk.ac.sanger.artemis.components.genebuilder.gff.PropertiesPanel; import uk.ac.sanger.artemis.components.genebuilder.ortholog.MatchPanel; - /** * Panel for display controlled vocabulary terms for Chado */ @@ -92,22 +91,32 @@ public class GeneEditorPanel extends JPanel coreButton = addOpenClosePanel("Core",qualifier_text_area, this, null); add(qualifier_text_area); - addDarkSeparator(this); - refButton = addOpenClosePanel("References",refPanel, this, null); - add(refPanel); - - addDarkSeparator(this); - cvButton = addOpenClosePanel("Controlled Vocabulary", cvForm, this, + if(refPanel != null) + { + addDarkSeparator(this); + refButton = addOpenClosePanel("References",refPanel, this, null); + add(refPanel); + } + + if(cvForm != null) + { + addDarkSeparator(this); + cvButton = addOpenClosePanel("Controlled Vocabulary", cvForm, this, CVPanel.getDescription()); - add(cvForm); - - addDarkSeparator(this); - matchButton = addOpenClosePanel("Match", matchForm, this, + add(cvForm); + } + + if(matchForm != null) + { + addDarkSeparator(this); + matchButton = addOpenClosePanel("Match", matchForm, this, MatchPanel.getDescription()); - add(matchForm); - + add(matchForm); + } + add(Box.createVerticalGlue()); } + /** * Open/close the sections if they contain elements or @@ -116,9 +125,12 @@ public class GeneEditorPanel extends JPanel public void updatePanelState() { coreButton.setOpen(!qualifier_text_area.getText().equals("")); - cvButton.setOpen(!cvForm.isEmpty()); - refButton.setOpen(!refPanel.isEmpty()); - matchButton.setOpen(!matchForm.isEmpty()); + if(cvForm != null) + cvButton.setOpen(!cvForm.isEmpty()); + if(refPanel != null) + refButton.setOpen(!refPanel.isEmpty()); + if(matchForm != null) + matchButton.setOpen(!matchForm.isEmpty()); propertiesButton.setOpen(!propertiesPanel.isEmpty()); } diff --git a/uk/ac/sanger/artemis/components/genebuilder/gff/PropertiesPanel.java b/uk/ac/sanger/artemis/components/genebuilder/gff/PropertiesPanel.java index a02fe756316efafb50093f3b6a467cc59b0eae3d..03a72b4a5378bdaa538e7bf8b15b68cd1e9c08bb 100644 --- a/uk/ac/sanger/artemis/components/genebuilder/gff/PropertiesPanel.java +++ b/uk/ac/sanger/artemis/components/genebuilder/gff/PropertiesPanel.java @@ -34,7 +34,6 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Iterator; import java.util.Set; -import java.util.Vector; import javax.swing.BorderFactory; import javax.swing.Box; @@ -184,7 +183,9 @@ public class PropertiesPanel extends JPanel { Qualifier idQualifier = gffQualifiers.getQualifierByName("ID"); Qualifier nameQualifier = gffQualifiers.getQualifierByName("Name"); - + + if(idQualifier == null) + return; final String uniquename = idQualifier.getValues().get(0); uniquenameTextField = new JTextField(uniquename); uniquenameTextField.setPreferredSize(calcPreferredMaxTextFieldWidth()); @@ -780,9 +781,13 @@ public class PropertiesPanel extends JPanel private void addSynonym() { - final Vector<CvTerm> synonyms = DatabaseDocument.getCvterms("", - ChadoTransactionManager.SYNONYM_TAG_CVNAME, false); - final JExtendedComboBox list = new JExtendedComboBox(synonyms); + final JExtendedComboBox list; + if(GeneUtils.isDatabaseEntry(feature.getEmblFeature())) + list = new JExtendedComboBox(DatabaseDocument.getCvterms("", + ChadoTransactionManager.SYNONYM_TAG_CVNAME, false)); + else + list = new JExtendedComboBox(ChadoTransactionManager.getSynonymTags()); + final String options[] = { "CANCEL", "NEXT>"}; int select = JOptionPane.showOptionDialog(null, list, @@ -790,12 +795,15 @@ public class PropertiesPanel extends JPanel JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[1]); - if(select == 0) return; - + Box xBox = Box.createHorizontalBox(); - final String synonymName = ((CvTerm)list.getSelectedItem()).getName(); + final String synonymName; + if(list.getSelectedItem() instanceof CvTerm) + synonymName = ((CvTerm)list.getSelectedItem()).getName(); + else + synonymName = (String) list.getSelectedItem(); final JLabel name = new JLabel( synonymName ); xBox.add(name);