/* * sequenceViewPartExport.java * * Created on July 7, 2008, 11:40 AM */ /* Copyright (c) 2008 The Regents of the University of California. All rights reserved. Permission is hereby granted, without written agreement and without license or royalty fees, to use, copy, modify, and distribute this software and its documentation for any purpose, provided that the above copyright notice and the following two paragraphs appear in all copies of this software. IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.. */ package org.clothocad.tool.sequenceview; import java.awt.Color; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.ArrayList; import javax.swing.JTextPane; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.BadLocationException; import org.clothocore.api.core.Collector; import org.clothocore.api.data.Collection; import org.clothocore.api.data.Feature; import org.clothocore.api.data.Format; import org.clothocore.api.data.NucSeq; import org.clothocore.api.data.ObjBase; import org.clothocore.api.data.ObjLink; import org.clothocore.api.data.ObjType; import org.clothocore.api.data.Oligo; import org.clothocore.api.data.Part; import org.clothocore.api.data.Vector; import org.clothocore.util.dialog.ClothoDialogBox; import org.openide.util.Exceptions; //import org.clothocad.util.ClothoDialogBox; /** * * @author Douglas Densmore, Jenhan Tao */ public class SequenceViewPartExport extends javax.swing.JFrame { /** Creates new form sequenceViewPartExport */ public SequenceViewPartExport() { initComponents(); } /** Creates new form sequenceViewPartExport */ public SequenceViewPartExport(SequenceView sv) { initComponents(); _sv = sv; addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent we) { ClothoDialogBox db = new ClothoDialogBox("Clotho: Exit Check", "Are you sure you want to close the packager?"); if (db.show_optionDialog(javax.swing.JOptionPane.YES_NO_OPTION, javax.swing.JOptionPane.QUESTION_MESSAGE) == javax.swing.JOptionPane.YES_OPTION) { dispose(); } } }); } public SequenceViewPartExport(SequenceView sv, JTextPane jtp) { initComponents(); _sv = sv; // addWindowListener(new WindowAdapter(){ // @Override // public void windowClosing(WindowEvent we){ // ClothoDialogBox db = new ClothoDialogBox("Clotho: Exit Check", "Are you sure you want to close the packager?"); // // if(db.show_optionDialog(javax.swing.JOptionPane.YES_NO_OPTION, javax.swing.JOptionPane.QUESTION_MESSAGE) == javax.swing.JOptionPane.YES_OPTION) // dispose(); // } // }); dataTextPane.setText(jtp.getText()); if (jtp.getSelectedText() != null) { intervalRadioButton.setSelected(true); fromTextField.setText(Integer.toString(jtp.getSelectionStart())); fromTextField.getDocument().addDocumentListener(new SelectionListener()); toTextField.setText(Integer.toString(jtp.getSelectionEnd())); toTextField.getDocument().addDocumentListener(new SelectionListener()); try { // dataTextPane.grabFocus(); dataTextPane.select(jtp.getSelectionStart(), jtp.getSelectionEnd()); dataTextPane.getHighlighter().addHighlight(jtp.getSelectionStart(), jtp.getSelectionEnd(), new javax.swing.text.DefaultHighlighter.DefaultHighlightPainter(dataTextPane.getSelectionColor())); } catch (Exception e) { } } else { try { // dataTextPane.grabFocus(); dataTextPane.selectAll(); dataTextPane.getHighlighter().addHighlight(0, dataTextPane.getText().length(), new javax.swing.text.DefaultHighlighter.DefaultHighlightPainter(dataTextPane.getSelectionColor())); } catch (Exception ex) { Exceptions.printStackTrace(ex); } fromTextField.setText("0"); toTextField.setText(Integer.toString(jtp.getText().length())); wsRadioButton.setSelected(true); try { dataTextPane.getHighlighter().addHighlight(0, dataTextPane.getText().length() , new javax.swing.text.DefaultHighlighter.DefaultHighlightPainter(dataTextPane.getSelectionColor())); dataTextPane.grabFocus(); dataTextPane.selectAll(); } catch (Exception ex) { Exceptions.printStackTrace(ex); } } ArrayList<ObjLink> collectionLinks = Collector.getAllLinksOf(ObjType.COLLECTION); collectionComboBox.removeAllItems(); for (ObjLink oj : collectionLinks) { collectionComboBox.addItem(oj); } collectionComboBox.setSelectedIndex(-1); formatComboBox.removeAllItems(); ArrayList<ObjLink> formatLinks = Collector.getAllLinksOf(ObjType.FORMAT); for (ObjLink oj : formatLinks) { formatComboBox.addItem(oj); } formatComboBox.setSelectedIndex(-1); objectTypeComboBox.removeAllItems(); objectTypeComboBox.addItem("Feature"); objectTypeComboBox.addItem("Oligo"); objectTypeComboBox.addItem("Part"); objectTypeComboBox.addItem("Vector"); objectTypeComboBox.setSelectedIndex(-1); formatComboBox.setEnabled(false); formatLabel.setEnabled(false); if (dataTextPane.getText().length() < 1) { this.dispose(); } else { this.setVisible(true); } } public boolean wholeSeqSel() { return wsRadioButton.isSelected(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { importbuttonGroup = new javax.swing.ButtonGroup(); jScrollPane1 = new javax.swing.JScrollPane(); dataTextPane = new javax.swing.JTextPane(); objectTypeComboBox = new javax.swing.JComboBox(); jLabel2 = new javax.swing.JLabel(); fromTextField = new javax.swing.JTextField(); toTextField = new javax.swing.JTextField(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); saveButton = new javax.swing.JButton(); wsRadioButton = new javax.swing.JRadioButton(); intervalRadioButton = new javax.swing.JRadioButton(); cancelButton = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); collectionComboBox = new javax.swing.JComboBox(); nameTextField = new javax.swing.JTextField(); jLabel3 = new javax.swing.JLabel(); formatComboBox = new javax.swing.JComboBox(); formatLabel = new javax.swing.JLabel(); statusLabel = new javax.swing.JLabel(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Save as Clotho Object"); addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { formMouseClicked(evt); } }); dataTextPane.setEditable(false); dataTextPane.setToolTipText("Data to package as a part"); dataTextPane.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { dataTextPaneMouseClicked(evt); } }); jScrollPane1.setViewportView(dataTextPane); objectTypeComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); objectTypeComboBox.setToolTipText("Which field should the data represent in the new part?"); objectTypeComboBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { objectTypeComboBoxActionPerformed(evt); } }); jLabel2.setText("Save as: "); fromTextField.setToolTipText("Starting interval of the sequence data to import"); fromTextField.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { fromTextFieldMouseClicked(evt); } }); fromTextField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { fromTextFieldActionPerformed(evt); } }); fromTextField.addPropertyChangeListener(new java.beans.PropertyChangeListener() { public void propertyChange(java.beans.PropertyChangeEvent evt) { fromTextFieldPropertyChange(evt); } }); fromTextField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { fromTextFieldKeyTyped(evt); } }); toTextField.setToolTipText("End interval of the sequence data to import"); toTextField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { toTextFieldActionPerformed(evt); } }); toTextField.addPropertyChangeListener(new java.beans.PropertyChangeListener() { public void propertyChange(java.beans.PropertyChangeEvent evt) { toTextFieldPropertyChange(evt); } }); toTextField.addKeyListener(new java.awt.event.KeyAdapter() { public void keyTyped(java.awt.event.KeyEvent evt) { toTextFieldKeyTyped(evt); } }); jLabel4.setText("From"); jLabel5.setText("To"); saveButton.setText("Save"); saveButton.setToolTipText("Package the part for the selected connection and data"); saveButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveButtonActionPerformed(evt); } }); importbuttonGroup.add(wsRadioButton); wsRadioButton.setText("Whole Sequence"); wsRadioButton.setToolTipText("Import the whole sequence"); wsRadioButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { wsRadioButtonActionPerformed(evt); } }); importbuttonGroup.add(intervalRadioButton); intervalRadioButton.setText("Interval"); intervalRadioButton.setToolTipText("Import the provided interval"); intervalRadioButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { intervalRadioButtonActionPerformed(evt); } }); cancelButton.setText("Cancel"); cancelButton.setMaximumSize(new java.awt.Dimension(57, 23)); cancelButton.setMinimumSize(new java.awt.Dimension(57, 23)); cancelButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { cancelButtonActionPerformed(evt); } }); jLabel1.setText("Save in Collection: "); collectionComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); jLabel3.setText("File Name: "); formatComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" })); formatComboBox.setToolTipText("Which field should the data represent in the new part?"); formatComboBox.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { formatComboBoxActionPerformed(evt); } }); formatLabel.setText("Format"); statusLabel.setText(" "); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(saveButton, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(cancelButton, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(collectionComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addGap(21, 21, 21) .addComponent(jLabel4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(fromTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(6, 6, 6) .addComponent(jLabel5) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(toTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 54, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(wsRadioButton) .addComponent(intervalRadioButton) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel3) .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(objectTypeComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(nameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(layout.createSequentialGroup() .addComponent(formatLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(formatComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 434, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(statusLabel)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {fromTextField, toTextField}); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {collectionComboBox, formatComboBox, formatLabel, jLabel1, jLabel2, jLabel3, nameTextField, objectTypeComboBox}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 232, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() .addComponent(wsRadioButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(intervalRadioButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel4) .addComponent(fromTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(toTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel5)) .addGap(4, 4, 4) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(nameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel3)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(objectTypeComboBox, javax.swing.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE) .addComponent(jLabel2)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(formatComboBox, javax.swing.GroupLayout.DEFAULT_SIZE, 23, Short.MAX_VALUE) .addComponent(formatLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(collectionComboBox, javax.swing.GroupLayout.PREFERRED_SIZE, 20, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel1)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(saveButton) .addComponent(cancelButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) .addGap(18, 18, 18) .addComponent(statusLabel) .addGap(26, 26, 26)) ); layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {fromTextField, toTextField}); layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {collectionComboBox, formatComboBox, formatLabel, jLabel1, jLabel2, jLabel3, nameTextField, objectTypeComboBox}); pack(); }// </editor-fold>//GEN-END:initComponents private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed String desc = _sv.getSequenceView().getOutputTextArea().getText(); if (desc == null) { desc = ""; } String name = nameTextField.getText(); String seq = null; System.out.println("saving: " + name); if (intervalRadioButton.isSelected()) { try { if (dataTextPane.getText() != null) { seq = dataTextPane.getText().substring(Integer.parseInt(fromTextField.getText()), Integer.parseInt(toTextField.getText())); } } catch (NumberFormatException e) { System.out.println("tried to use invalid sequence interval to generate Clotho object"); return; } } else { seq = dataTextPane.getText(); } Format form = null; Collection coll = null; if (objectTypeComboBox.getSelectedIndex() != 1 && objectTypeComboBox.getSelectedIndex() != 0 ) { if (formatComboBox.getSelectedIndex() == -1) { statusLabel.setText("Warning: format not set"); return; } form = Collector.getFormat(((ObjLink) formatComboBox.getSelectedItem()).uuid); } if (collectionComboBox.getSelectedIndex() != -1) { coll = Collector.getCollection(((ObjLink) collectionComboBox.getSelectedItem()).uuid); } else { statusLabel.setText("Warning: collection not selected"); return; } if (objectTypeComboBox.getSelectedIndex() == -1) { statusLabel.setText("Warning: object Type not set"); return; } Boolean saved = false; ObjBase newObject = null; if (coll != null) { if (objectTypeComboBox.getSelectedIndex() == 0) { //feature if (seq.toUpperCase().indexOf("ATG") != -1) { newObject = Feature.generateFeature(name, seq, Collector.getCurrentUser(), true); } else { newObject = Feature.generateFeature(name, seq, Collector.getCurrentUser(), false); } } else if (objectTypeComboBox.getSelectedIndex() == 1) { newObject = new Oligo(name, desc, Collector.getCurrentUser(), seq); } else if (form != null && objectTypeComboBox.getSelectedIndex() == 2) { //part newObject = Part.generateBasic(name, desc, seq, form, Collector.getCurrentUser()); } else if (form != null && objectTypeComboBox.getSelectedIndex() == 3) { Vector.generateVector(name, desc, seq, form, Collector.getCurrentUser()); } else { statusLabel.setText("error saving new Clotho object, check selected fields"); return; } } else { statusLabel.setText("Not all fields are filled"); return; } if (newObject != null) { statusLabel.setText("saving: " + newObject.getName()); } saved = newObject.saveDefault(); coll.addObject(newObject); coll.saveDefault(); Collector.add(newObject); if (saved) { statusLabel.setText("Successful save!"); NucSeq.refreshFeatureTable(); this.dispose(); } }//GEN-LAST:event_saveButtonActionPerformed private void objectTypeComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_objectTypeComboBoxActionPerformed if (objectTypeComboBox.getSelectedItem() != null) { if (!(objectTypeComboBox.getSelectedItem()).equals("Oligo") && !(objectTypeComboBox.getSelectedItem()).equals("Feature")) { formatLabel.setEnabled(true); formatComboBox.setEnabled(true); } else { formatLabel.setEnabled(false); formatComboBox.setEnabled(false); } } }//GEN-LAST:event_objectTypeComboBoxActionPerformed private void cancelButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelButtonActionPerformed this.dispose(); }//GEN-LAST:event_cancelButtonActionPerformed private void formatComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_formatComboBoxActionPerformed // TODO add your handling code here: }//GEN-LAST:event_formatComboBoxActionPerformed private void fromTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fromTextFieldActionPerformed }//GEN-LAST:event_fromTextFieldActionPerformed private void toTextFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_toTextFieldActionPerformed this.updateSelection(); }//GEN-LAST:event_toTextFieldActionPerformed private void fromTextFieldKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_fromTextFieldKeyTyped intervalRadioButton.setSelected(true); wsRadioButton.setSelected(false); this.updateSelection(); }//GEN-LAST:event_fromTextFieldKeyTyped private void toTextFieldKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_toTextFieldKeyTyped intervalRadioButton.setSelected(true); wsRadioButton.setSelected(false); this.updateSelection(); }//GEN-LAST:event_toTextFieldKeyTyped private void wsRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_wsRadioButtonActionPerformed dataTextPane.grabFocus(); dataTextPane.selectAll(); }//GEN-LAST:event_wsRadioButtonActionPerformed private void intervalRadioButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_intervalRadioButtonActionPerformed this.updateSelection(); }//GEN-LAST:event_intervalRadioButtonActionPerformed private void fromTextFieldPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_fromTextFieldPropertyChange this.updateSelection(); }//GEN-LAST:event_fromTextFieldPropertyChange private void toTextFieldPropertyChange(java.beans.PropertyChangeEvent evt) {//GEN-FIRST:event_toTextFieldPropertyChange this.updateSelection(); }//GEN-LAST:event_toTextFieldPropertyChange private void formMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_formMouseClicked this.updateSelection(); }//GEN-LAST:event_formMouseClicked private void fromTextFieldMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_fromTextFieldMouseClicked this.updateSelection(); }//GEN-LAST:event_fromTextFieldMouseClicked private void dataTextPaneMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_dataTextPaneMouseClicked this.updateSelection(); }//GEN-LAST:event_dataTextPaneMouseClicked /** * @param args the command line arguments */ public void updateSelection() { try { dataTextPane.getHighlighter().removeAllHighlights(); dataTextPane.setSelectionEnd(Integer.parseInt(toTextField.getText().trim())); dataTextPane.setSelectionStart(Integer.parseInt(fromTextField.getText().trim())); try { dataTextPane.getHighlighter().addHighlight(dataTextPane.getSelectionStart(), dataTextPane.getSelectionEnd(), new javax.swing.text.DefaultHighlighter.DefaultHighlightPainter(dataTextPane.getSelectionColor())); } catch (BadLocationException ex) { Exceptions.printStackTrace(ex); } } catch (NumberFormatException e) { return; } } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new SequenceViewPartExport().setVisible(true); } }); } private SequenceView _sv; private boolean _visible; // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton cancelButton; private javax.swing.JComboBox collectionComboBox; private javax.swing.JTextPane dataTextPane; private javax.swing.JComboBox formatComboBox; private javax.swing.JLabel formatLabel; private javax.swing.JTextField fromTextField; private javax.swing.ButtonGroup importbuttonGroup; private javax.swing.JRadioButton intervalRadioButton; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextField nameTextField; private javax.swing.JComboBox objectTypeComboBox; private javax.swing.JButton saveButton; private javax.swing.JLabel statusLabel; private javax.swing.JTextField toTextField; private javax.swing.JRadioButton wsRadioButton; // End of variables declaration//GEN-END:variables private class SelectionListener implements DocumentListener { @Override public void insertUpdate(DocumentEvent e) { updateSelection(); } @Override public void removeUpdate(DocumentEvent e) { updateSelection(); } @Override public void changedUpdate(DocumentEvent e) { updateSelection(); } } }