Revision: 12089 http://cdk.svn.sourceforge.net/cdk/?rev=12089&view=rev Author: thomaskuhn Date: 2008-08-26 12:11:19 +0000 (Tue, 26 Aug 2008) Log Message: ----------- Add a file chooser to choose the folder to store the result of the classification Added Paths: ----------- cdk-taverna/trunk/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/ART2AClassificator/tools/action/CompareART2AClassificationResultsChooseFolderAction.java Added: cdk-taverna/trunk/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/ART2AClassificator/tools/action/CompareART2AClassificationResultsChooseFolderAction.java =================================================================== --- cdk-taverna/trunk/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/ART2AClassificator/tools/action/CompareART2AClassificationResultsChooseFolderAction.java (rev 0) +++ cdk-taverna/trunk/src/main/java/org/openscience/cdk/applications/taverna/qsar/model/ART2AClassificator/tools/action/CompareART2AClassificationResultsChooseFolderAction.java 2008-08-26 12:11:19 UTC (rev 12089) @@ -0,0 +1,150 @@ +/* $RCSfile$ + * $Author: egonw $ + * $Date: 2008-05-05 12:58:11 +0200 (Mo, 05 Mai 2008) $ + * $Revision: 10819 $ + * + * Copyright (C) 2007 by Thomas Kuhn <tho...@us...> + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License + * as published by the Free Software Foundation; either version 2.1 + * of the License, or (at your option) any later version. + * All we ask is that proper credit is given for our work, which includes + * - but is not limited to - adding the above copyright notice to the beginning + * of your source code files, and to any copyright notice that you may distribute + * with programs based on this work. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +package org.openscience.cdk.applications.taverna.qsar.model.ART2AClassificator.tools.action; + +import java.awt.Dimension; +import java.io.File; + +import javax.swing.ImageIcon; +import javax.swing.JComponent; +import javax.swing.JFileChooser; +import javax.swing.JFrame; + +import org.embl.ebi.escience.scufl.Processor; +import org.embl.ebi.escience.scuflui.TavernaIcons; +import org.openscience.cdk.applications.taverna.actions.AbstractCDKProcessorAction; +import org.openscience.cdk.applications.taverna.qsar.model.ART2AClassificator.tools.CompareART2AClassificationResults; +import org.openscience.cdk.applications.taverna.scuflworkers.cdk.CDKProcessor; +/** + * This class handles the action of the compare ART2A classification results. It is used to choose a folder to store the results. + * @author Thomas Kuhn + */ +public class CompareART2AClassificationResultsChooseFolderAction extends AbstractCDKProcessorAction { + private String descriptionAdder = ""; + + /* (non-Javadoc) + * @see org.embl.ebi.escience.scuflui.actions.AbstractProcessorAction#getComponent(org.embl.ebi.escience.scufl.Processor) + */ + @Override + public JComponent getComponent(Processor processor) { + if (!(processor instanceof CDKProcessor)) { + return null; + } + JFileChooser fileChooser = new JFileChooser(); + CDKProcessor proc = (CDKProcessor) processor; + final CompareART2AClassificationResults worker = (CompareART2AClassificationResults) proc.getWorker(); + boolean fileSearch = true; + try { + String fileName = null; + fileChooser.setMultiSelectionEnabled(false); + fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + while (fileSearch) { + if (worker.getFolderName() != null && worker.getFolderName().length() != 0) { + fileName = worker.getFolderName(); + } + if (fileName != null && fileName.length() > 0) { + fileChooser.setCurrentDirectory(new java.io.File(fileName)); + } + // Is true if the user selects a file within the filechooser + fileChooser.setMultiSelectionEnabled(false); + fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { + File files = fileChooser.getSelectedFile(); + System.out.println(files.getAbsolutePath()); + worker.setFolderName(files.getAbsolutePath()); + fileName = fileChooser.getSelectedFile().getAbsolutePath(); + fileSearch = false; + // Is true if the is in an format which is supported by the cdk-taverna project + } else { + fileSearch = false; + } + } + } catch (Exception e) { + return null; + } + // TODO Don't give null back!! Change this! + return null; + } + + /* (non-Javadoc) + * @see org.embl.ebi.escience.scuflui.spi.ProcessorActionSPI#canHandle(org.embl.ebi.escience.scufl.Processor) + */ + public boolean canHandle(Processor processor) { + if (!(processor instanceof CDKProcessor)) { + return false; + } + CDKProcessor proc = (CDKProcessor) processor; + if (proc.getWorker() instanceof CompareART2AClassificationResults) { + CompareART2AClassificationResults reader = (CompareART2AClassificationResults)proc.getWorker(); + File file; + String temp = ""; + if (reader.getFolderName() != null && reader.getFolderName().length() != 0) { + file = new File(reader.getFolderName()); + if (file.isDirectory()) { + temp = file.getName(); + } + if (temp.length() != 0) { + this.descriptionAdder = " - selected folder: " + temp; + } + } + else { + this.descriptionAdder = ""; + } + return true; + } + else { + return false; + } + } + + /* (non-Javadoc) + * @see org.embl.ebi.escience.scuflui.spi.ProcessorActionSPI#getDescription() + */ + public String getDescription() { + return "Choose result folder " + this.descriptionAdder; + } + + /* (non-Javadoc) + * @see org.embl.ebi.escience.scuflui.actions.AbstractProcessorAction#getFrameSize() + */ + public Dimension getFrameSize() { + // should be small enought due to using a file dialog + return new Dimension(1, 1); + } + + + /* (non-Javadoc) + * @see org.embl.ebi.escience.scuflui.spi.ProcessorActionSPI#getIcon() + */ + public ImageIcon getIcon() { + return TavernaIcons.openIcon; + } + + @Override + public JFrame getFrame(Processor processor) { + return null; + } +} \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |