You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ctakes.apache.org by se...@apache.org on 2017/04/06 14:05:24 UTC

svn commit: r1790409 - in /ctakes/trunk: ctakes-core/src/main/java/org/apache/ctakes/core/cc/AbstractOutputFileWriter.java ctakes-gui/src/main/java/org/apache/ctakes/gui/pipeline/MainPanel2.java

Author: seanfinan
Date: Thu Apr  6 14:05:23 2017
New Revision: 1790409

URL: http://svn.apache.org/viewvc?rev=1790409&view=rev
Log:
ctakes-424 : activated run button
made subdirectory optional on AbstractOutputFileWriter

Modified:
    ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/cc/AbstractOutputFileWriter.java
    ctakes/trunk/ctakes-gui/src/main/java/org/apache/ctakes/gui/pipeline/MainPanel2.java

Modified: ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/cc/AbstractOutputFileWriter.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/cc/AbstractOutputFileWriter.java?rev=1790409&r1=1790408&r2=1790409&view=diff
==============================================================================
--- ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/cc/AbstractOutputFileWriter.java (original)
+++ ctakes/trunk/ctakes-core/src/main/java/org/apache/ctakes/core/cc/AbstractOutputFileWriter.java Thu Apr  6 14:05:23 2017
@@ -43,6 +43,7 @@ abstract public class AbstractOutputFile
    @ConfigurationParameter(
          name = ConfigParameterConstants.PARAM_SUBDIR,
          description = ConfigParameterConstants.DESC_SUBDIR,
+         mandatory = false,
          defaultValue = ""
    )
    private String _subDirectory;

Modified: ctakes/trunk/ctakes-gui/src/main/java/org/apache/ctakes/gui/pipeline/MainPanel2.java
URL: http://svn.apache.org/viewvc/ctakes/trunk/ctakes-gui/src/main/java/org/apache/ctakes/gui/pipeline/MainPanel2.java?rev=1790409&r1=1790408&r2=1790409&view=diff
==============================================================================
--- ctakes/trunk/ctakes-gui/src/main/java/org/apache/ctakes/gui/pipeline/MainPanel2.java (original)
+++ ctakes/trunk/ctakes-gui/src/main/java/org/apache/ctakes/gui/pipeline/MainPanel2.java Thu Apr  6 14:05:23 2017
@@ -1,6 +1,7 @@
 package org.apache.ctakes.gui.pipeline;
 
 import org.apache.ctakes.core.pipeline.PipeBitInfo;
+import org.apache.ctakes.core.pipeline.PiperFileReader;
 import org.apache.ctakes.gui.component.*;
 import org.apache.ctakes.gui.pipeline.bit.PipeBitFinder;
 import org.apache.ctakes.gui.pipeline.bit.available.AvailablesListModel;
@@ -29,8 +30,7 @@ import java.nio.file.Paths;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.Arrays;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
+import java.util.concurrent.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -161,6 +161,7 @@ final class MainPanel2 extends JPanel {
       _validateButton = addButton( toolBar, "Validate Current Piper File" );
       _validateButton.addActionListener( new ValidateAction() );
       _runButton = addButton( toolBar, "Run Current Piper File" );
+      _runButton.addActionListener( new RunAction() );
       _runButton.setEnabled( false );
       toolBar.addSeparator( new Dimension( 10, 0 ) );
       return toolBar;
@@ -405,6 +406,54 @@ final class MainPanel2 extends JPanel {
       }
    }
 
+   private final class RunAction implements ActionListener {
+      @Override
+      public void actionPerformed( final ActionEvent event ) {
+         if ( _piperTextFilter == null || _runButton == null ) {
+            return;
+         }
+         LOGGER.info( "Running Piper File ..." );
+         final ExecutorService executor = Executors.newSingleThreadExecutor();
+         final Future<Boolean> success = executor.submit( new PiperFileRunner() );
+         try {
+            if ( success.get() ) {
+               LOGGER.info( "Run complete." );
+            } else {
+               LOGGER.warn( "Run may have encountered problems." );
+            }
+         } catch ( InterruptedException | ExecutionException multE ) {
+            LOGGER.warn( multE );
+            LOGGER.warn( "Run may have encountered problems." );
+         }
+      }
+   }
+
+   private class PiperFileRunner implements Callable<Boolean> {
+      @Override
+      public Boolean call() {
+         final JFrame frame = (JFrame)SwingUtilities.getRoot( MainPanel2.this );
+         frame.setCursor( Cursor.getPredefinedCursor( Cursor.WAIT_CURSOR ) );
+         DisablerPane.getInstance().setVisible( true );
+         boolean success = false;
+         try {
+            final PiperFileReader reader = new PiperFileReader();
+            final String text = _piperDocument.getText( 0, _piperDocument.getLength() );
+            final String[] lines = text.split( "\\n" );
+            for ( String line : lines ) {
+               reader.parsePipelineLine( line );
+            }
+            reader.getBuilder().run();
+            success = true;
+         } catch ( Throwable t ) {
+            LOGGER.error( "Pipeline Run caused Exception:", t );
+         }
+         DisablerPane.getInstance().setVisible( false );
+         frame.setCursor( Cursor.getDefaultCursor() );
+         return success;
+      }
+   }
+
+
    static private final class PiperFileView extends FileView {
       private Icon _piperIcon = null;