All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.ctakes.dockhand.gui.wizard.OutputStep Maven / Gradle / Ivy

The newest version!
package org.apache.ctakes.dockhand.gui.wizard;

import org.apache.ctakes.dockhand.gui.feature.Option;
import org.apache.ctakes.dockhand.gui.output.Output;
import org.apache.ctakes.dockhand.gui.output.OutputComponent;
import org.apache.ctakes.gui.wizard.AbstractWizardStep;

import javax.swing.*;
import java.util.*;
import java.util.stream.Collectors;

/**
 * @author SPF , chip-nlp
 * @version %I%
 * @since 10/9/2019
 */
final public class OutputStep extends AbstractWizardStep implements DhWizardStep {


   private final Map _outputComponents = new EnumMap<>( Output.class );


   public OutputStep() {
      super( "Pipeline Outputs",
            "Select the pipeline Outputs." );
   }


   /**
    * {@inheritDoc}
    */
   @Override
   protected JComponent createPanel() {
      final JComponent panel = new JPanel();
      panel.setLayout( new BoxLayout( panel, BoxLayout.Y_AXIS ) );
      panel.add( Box.createVerticalStrut( 100 ) );
      for ( Output output : Output.values() ) {
         final OutputComponent outputComponent = new OutputComponent( output );
         _outputComponents.put( output, outputComponent );
         panel.add( outputComponent );
      }
      panel.add( Box.createVerticalStrut( 100 ) );
      return wrapInScrollPane( panel );
   }


   /**
    * {@inheritDoc}
    */
   @Override
   public Collection getPiperCommands() {
      if ( _outputComponents.isEmpty() ) {
         return Collections.emptyList();
      }

      final Collection unfilteredCommands =
            Arrays.stream( Output.values() )
                  .map( _outputComponents::get )
                  .filter( OutputComponent::isSelected )
                  .map( OutputComponent::getOutput )
                  .map( Output::getPiperLines )
                  .flatMap( Collection::stream )
                  .collect( Collectors.toList() );

      final Collection piperCommands = new ArrayList<>();
      for ( String command : unfilteredCommands ) {
         if ( !command.isEmpty() ) {
            if ( piperCommands.contains( command )
                 || !Option.PiperLineRequirements.hasRequirements( command, piperCommands ) ) {
               continue;
            }
         }
         piperCommands.add( command );
      }
      return piperCommands;
   }

   public String getSummaryInfo() {
      final Collection summaryLines = new ArrayList<>();
      for ( OutputComponent outputComponent : _outputComponents.values() ) {
         if ( !outputComponent.isSelected() ) {
            continue;
         }
         summaryLines.add( outputComponent.getOutput().getDescription() );
      }
      return "" + String.join( "
", summaryLines ) + ""; } public Collection getSelectedOutputs() { return _outputComponents.entrySet().stream() .filter( e -> e.getValue().isSelected() ) .map( Map.Entry::getKey ) .collect( Collectors.toList() ); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy