From: Egon W. <eg...@us...> - 2004-02-29 14:27:41
|
Update of /cvsroot/cdk/cdk-plugins/macieplugin/src/org/openscience/cdkplugin/macieplugin In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7197/src/org/openscience/cdkplugin/macieplugin Modified Files: MACiEPlugin.java Log Message: Added reaction info panel and putted content tree in tab, so that a search tab can be added later Index: MACiEPlugin.java =================================================================== RCS file: /cvsroot/cdk/cdk-plugins/macieplugin/src/org/openscience/cdkplugin/macieplugin/MACiEPlugin.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- MACiEPlugin.java 19 Feb 2004 15:03:50 -0000 1.4 +++ MACiEPlugin.java 29 Feb 2004 14:09:34 -0000 1.5 @@ -66,6 +66,7 @@ import javax.swing.JLabel; import javax.swing.JComboBox; import javax.swing.JOptionPane; +import javax.swing.JTextPane; import javax.swing.event.*; import javax.swing.table.AbstractTableModel; @@ -78,15 +79,18 @@ public class MACiEPlugin implements CDKPluginInterface { private String implementedCDKPluginAPIVersion = "1.5"; - private String pluginVersion = "0.4"; + private String pluginVersion = "0.5"; private JPanel pluginPanel = null; private CDKEditBus editBus = null; - private MACiEContentModel tableContent = null; - private SortedTableModel sortedContent = null; private LoggingTool logger = null; private Properties pluginProps = null; - + + // fields with shared info + private MACiEContentModel tableContent = null; + private SortedTableModel sortedContent = null; + private JTextPane entryInfoPane = null; + public void setEditBus(CDKEditBus editBus) { this.editBus = editBus; } @@ -132,7 +136,19 @@ private JPanel createPanel() { JPanel viewerPanel = new JPanel(); - // A table showing the entries in one channel + JTabbedPane tabbedPane = new JTabbedPane(); + tabbedPane.add("Entries", createEntriesPanel()); + + viewerPanel.add(tabbedPane); + viewerPanel.validate(); + + return viewerPanel; + }; + + private JPanel createEntriesPanel() { + JPanel entriesPanel = new JPanel(new BorderLayout()); + + // add a table showing the entries tableContent = new MACiEContentModel(); sortedContent = new SortedTableModel(tableContent); JTable macieTable = new JTable(sortedContent); @@ -146,11 +162,16 @@ macieTable.validate(); JScrollPane contentPane = new JScrollPane(macieTable); contentPane.validate(); - viewerPanel.add(contentPane); - viewerPanel.validate(); + entriesPanel.add(contentPane, BorderLayout.CENTER); - return viewerPanel; - }; + // add a TextPane showing information about the selected entry + entryInfoPane = new JTextPane(); + entryInfoPane.setPreferredSize(new Dimension(300,150)); + JScrollPane infoScroller = new JScrollPane(entryInfoPane); + entriesPanel.add(infoScroller, BorderLayout.SOUTH); + + return entriesPanel; + } public JPanel getPluginConfigPanel() { return null; @@ -300,15 +321,37 @@ if (lsm.isSelectionEmpty()) { // no rows are selected } else { + // only take first selected model int selectedRow = lsm.getMinSelectionIndex(); ChemModel model = modelContent.getValueAt(sortedModelContent.getSortedIndex(selectedRow)); - ChemSequence sequence = new ChemSequence(); - sequence.addChemModel(model); - ChemFile file = new ChemFile(); - file.addChemSequence(sequence); - editBus.showChemFile(file); + sendContentToEditBus(model); + showModelInfo(model); } } + + private void sendContentToEditBus(ChemModel model) { + ChemSequence sequence = new ChemSequence(); + sequence.addChemModel(model); + ChemFile file = new ChemFile(); + file.addChemSequence(sequence); + editBus.showChemFile(file); + } + + private void showModelInfo(ChemModel model) { + StringBuffer modelInfo = new StringBuffer(); + modelInfo.append("<html>\n"); + modelInfo.append("<h3>Enzyme information:\n<ul>\n"); + modelInfo.append(" <li>Enzyme:" + model.getProperty(MACiEReader.EnzymeName) + "\n"); + modelInfo.append(" <li>PDB:" + model.getProperty(MACiEReader.PDBCode) + "\n"); + modelInfo.append(" <li>EC:" + model.getProperty(MACiEReader.ECNumber) + "\n"); + modelInfo.append("</ul>\n"); + modelInfo.append("<h3>Reaction information:\n<ul>\n"); + modelInfo.append(" <li>Steps:" + model.getSetOfReactions().getReactionCount() + "\n"); + modelInfo.append("</ul>\n"); + modelInfo.append("</html>\n"); + entryInfoPane.setContentType("text/html"); + entryInfoPane.setText(modelInfo.toString()); + } } class OpenMACiEEvent extends AbstractAction { |