Skip to content
Snippets Groups Projects
Commit 5576520a authored by Stéphane  DALLONGEVILLE's avatar Stéphane DALLONGEVILLE
Browse files

Added new Output type block for easier interface with external processes

parent 4c4af703
No related branches found
No related tags found
No related merge requests found
Showing
with 405 additions and 4 deletions
package plugins.adufour.blocks.tools.output;
import icy.plugin.abstract_.Plugin;
import plugins.adufour.blocks.util.VarList;
import plugins.adufour.vars.lang.VarBoolean;
public class BooleanOutput extends Plugin implements OutputBlock
{
@Override
public void declareInput(VarList inputMap)
{
inputMap.add("boolean", new VarBoolean("Boolean", false));
}
@Override
public void declareOutput(VarList outputMap)
{
//
}
@Override
public void run()
{
//
}
}
package plugins.adufour.blocks.tools.output;
import icy.plugin.abstract_.Plugin;
import plugins.adufour.blocks.util.VarList;
import plugins.adufour.vars.lang.VarDouble;
/**
* Input block reading a 64-bit double-precision floating-point value
*
* @author Alexandre Dufour
*/
public class DecimalOutput extends Plugin implements OutputBlock
{
@Override
public void declareInput(VarList inputMap)
{
inputMap.add("decimal", new VarDouble("decimal", 0.0));
}
@Override
public void run()
{
}
@Override
public void declareOutput(VarList outputMap)
{
}
}
package plugins.adufour.blocks.tools.output;
import icy.plugin.abstract_.Plugin;
import plugins.adufour.blocks.util.VarList;
import plugins.adufour.vars.lang.VarDoubleArrayNative;
/**
* Utility block reading an array of double-precision floating-point values
*
* @author Alexandre Dufour
*/
public class DecimalsOutput extends Plugin implements OutputBlock
{
@Override
public void declareInput(VarList inputMap)
{
inputMap.add("decimals", new VarDoubleArrayNative("decimals", new double[0]));
}
@Override
public void run()
{
}
@Override
public void declareOutput(VarList outputMap)
{
}
}
package plugins.adufour.blocks.tools.output;
import icy.plugin.abstract_.Plugin;
import plugins.adufour.blocks.util.VarList;
import plugins.adufour.vars.gui.FileMode;
import plugins.adufour.vars.gui.model.FileTypeModel;
import plugins.adufour.vars.lang.VarFile;
/**
* Input block reading a file
*
* @author Alexandre Dufour
*/
public class FileOutput extends Plugin implements OutputBlock
{
@Override
public void run()
{
}
@Override
public void declareInput(VarList inputMap)
{
VarFile vf = new VarFile("file", null);
vf.setDefaultEditorModel(new FileTypeModel("", FileMode.FILES, null, false));
inputMap.add("file", vf);
}
@Override
public void declareOutput(VarList outputMap)
{
}
}
package plugins.adufour.blocks.tools.output;
import icy.plugin.abstract_.Plugin;
import plugins.adufour.blocks.util.VarList;
import plugins.adufour.vars.gui.FileMode;
import plugins.adufour.vars.gui.model.FileTypeListModel;
import plugins.adufour.vars.lang.VarFileArray;
/**
* Input block reading a list of files
*
* @author Alexandre Dufour
*/
public class FilesOutput extends Plugin implements OutputBlock
{
@Override
public void run()
{
}
@Override
public void declareInput(VarList inputMap)
{
VarFileArray vf = new VarFileArray("files", new java.io.File[0]);
vf.setDefaultEditorModel(new FileTypeListModel("", FileMode.FILES, null, false));
inputMap.add("files", vf);
}
@Override
public void declareOutput(VarList outputMap)
{
}
}
package plugins.adufour.blocks.tools.output;
import icy.plugin.abstract_.Plugin;
import plugins.adufour.blocks.util.VarList;
import plugins.adufour.vars.gui.FileMode;
import plugins.adufour.vars.gui.model.FileTypeModel;
import plugins.adufour.vars.lang.VarFile;
/**
* Input block reading a folder
*
* @author Alexandre Dufour
*/
public class FolderOutput extends Plugin implements OutputBlock
{
@Override
public void run()
{
}
@Override
public void declareInput(VarList inputMap)
{
VarFile vf = new VarFile("folder", null);
vf.setDefaultEditorModel(new FileTypeModel("", FileMode.FOLDERS, null, false));
inputMap.add("folder", vf);
}
@Override
public void declareOutput(VarList outputMap)
{
}
}
package plugins.adufour.blocks.tools.output;
import icy.plugin.abstract_.Plugin;
import plugins.adufour.blocks.util.VarList;
import plugins.adufour.vars.gui.FileMode;
import plugins.adufour.vars.gui.model.FileTypeListModel;
import plugins.adufour.vars.lang.VarFileArray;
/**
* Input block reading a list of folders
*
* @author Alexandre Dufour
*/
public class FoldersOutput extends Plugin implements OutputBlock
{
@Override
public void run()
{
}
@Override
public void declareInput(VarList inputMap)
{
VarFileArray vf = new VarFileArray("folders", new java.io.File[0]);
vf.setDefaultEditorModel(new FileTypeListModel("", FileMode.FOLDERS, null, false));
inputMap.add("folders", vf);
}
@Override
public void declareOutput(VarList outputMap)
{
}
}
package plugins.adufour.blocks.tools.output;
import icy.plugin.abstract_.Plugin;
import plugins.adufour.blocks.util.VarList;
import plugins.adufour.vars.lang.VarInteger;
/**
* Utility block reading a 32-bit integer value
*
* @author Alexandre Dufour
*/
public class IntegerOutput extends Plugin implements OutputBlock
{
@Override
public void declareInput(VarList inputMap)
{
VarInteger vi = new VarInteger("integer", 0);
inputMap.add("integer", vi);
}
@Override
public void run()
{
}
@Override
public void declareOutput(VarList outputMap)
{
}
}
package plugins.adufour.blocks.tools.output;
import icy.plugin.abstract_.Plugin;
import plugins.adufour.blocks.util.VarList;
import plugins.adufour.vars.lang.VarIntegerArrayNative;
/**
* Utility block reading an array of 32-bit integer values
*
* @author Alexandre Dufour
*/
public class IntegersOutput extends Plugin implements OutputBlock
{
@Override
public void declareInput(VarList inputMap)
{
inputMap.add("integers", new VarIntegerArrayNative("integers", new int[0]));
}
@Override
public void run()
{
}
@Override
public void declareOutput(VarList outputMap)
{
}
}
package plugins.adufour.blocks.tools.output;
import plugins.adufour.blocks.lang.Block;
/**
* Interface used to flag pure output blocks
*
* @author Stephane Dallongeville
*
*/
public interface OutputBlock extends Block
{
}
\ No newline at end of file
package plugins.adufour.blocks.tools.output;
import icy.plugin.abstract_.Plugin;
import plugins.adufour.blocks.util.VarList;
import plugins.adufour.vars.lang.VarSequence;
/**
* Utility block reading a {@link icy.sequence.Sequence} object
*
* @author Alexandre Dufour
*/
public class SequenceOutput extends Plugin implements OutputBlock
{
private final VarSequence vs = new VarSequence("sequence", null);
@Override
public void run()
{
}
@Override
public void declareInput(VarList inputMap)
{
inputMap.add("input sequence", vs);
}
@Override
public void declareOutput(VarList outputMap)
{
}
public VarSequence getVariable()
{
return vs;
}
}
package plugins.adufour.blocks.tools.output;
import icy.plugin.abstract_.Plugin;
import plugins.adufour.blocks.util.VarList;
import plugins.adufour.vars.lang.VarSequenceArray;
/**
* Utility block reading a list of {@link icy.sequence.Sequence} objects
*
* @author Alexandre Dufour
*/
public class SequencesOutput extends Plugin implements OutputBlock
{
@Override
public void run()
{
}
@Override
public void declareInput(VarList inputMap)
{
VarSequenceArray vsa = new VarSequenceArray("sequence");
inputMap.add("input sequence", vsa);
}
@Override
public void declareOutput(VarList outputMap)
{
}
}
package plugins.adufour.blocks.tools.output;
import icy.plugin.abstract_.Plugin;
import plugins.adufour.blocks.util.VarList;
import plugins.adufour.vars.lang.VarString;
/**
* Text input
*
* @author Alexandre Dufour
*/
public class TextOutput extends Plugin implements OutputBlock
{
@Override
public void run()
{
}
@Override
public void declareInput(VarList inputMap)
{
inputMap.add("text", new VarString("text", ""));
}
@Override
public void declareOutput(VarList outputMap)
{
}
}
......@@ -51,6 +51,7 @@ import plugins.adufour.blocks.tools.ToolsBlock;
import plugins.adufour.blocks.tools.ij.IJBlock;
import plugins.adufour.blocks.tools.input.InputBlock;
import plugins.adufour.blocks.tools.io.IOBlock;
import plugins.adufour.blocks.tools.output.OutputBlock;
import plugins.adufour.blocks.tools.roi.ROIBlock;
import plugins.adufour.blocks.tools.sequence.SequenceBlock;
import plugins.adufour.protocols.gui.BlockSearchPanel;
......@@ -311,6 +312,9 @@ public class BlocksFinder
JMenu mnInput = new JMenu("Read...");
mnInput.setIcon(new IcyIcon(ResourceUtil.ICON_REDO, 22));
JMenu mnOutput = new JMenu("Out...");
mnOutput.setIcon(new IcyIcon(ResourceUtil.ICON_UNDO, 22));
JMenu mnIO = new JMenu("I/O...");
mnIO.setIcon(new IcyIcon(ResourceUtil.ICON_SAVE, 22));
......@@ -432,6 +436,10 @@ public class BlocksFinder
{
mnInput.add(menuItem);
}
else if (OutputBlock.class.isAssignableFrom(blockClass))
{
mnOutput.add(menuItem);
}
else if (SequenceBlock.class.isAssignableFrom(blockClass))
{
mnSeq.add(menuItem);
......@@ -489,6 +497,7 @@ public class BlocksFinder
splitLongMenus(mnBlocks, 15);
splitLongMenus(mnInput, 15);
splitLongMenus(mnOutput, 15);
splitLongMenus(mnSeq, 15);
splitLongMenus(mnROI, 15);
splitLongMenus(mnIO, 15);
......@@ -498,6 +507,7 @@ public class BlocksFinder
menuContainer.add(mnBlocks);
menuContainer.add(mnInput);
menuContainer.add(mnOutput);
menuContainer.add(mnSeq);
menuContainer.add(mnROI);
menuContainer.add(mnIO);
......
......@@ -43,6 +43,7 @@ import plugins.adufour.blocks.lang.BlockDescriptor;
import plugins.adufour.blocks.lang.Link;
import plugins.adufour.blocks.lang.WorkFlow;
import plugins.adufour.blocks.tools.input.InputBlock;
import plugins.adufour.blocks.tools.output.OutputBlock;
import plugins.adufour.protocols.Protocols;
import plugins.adufour.vars.gui.model.TypeSelectionModel;
import plugins.adufour.vars.lang.Var;
......@@ -598,7 +599,7 @@ public class BlocksML
XMLUtil.setAttributeValue(blockNode, "definedName", blockData.getDefinedName());
XMLUtil.setAttributeBooleanValue(blockNode, "keepsResults", blockData.keepsResults());
if (block instanceof InputBlock)
if ((block instanceof InputBlock) || (block instanceof OutputBlock))
XMLUtil.setAttributeValue(blockNode, "CommandLineID", blockData.getCommandLineID());
if (blockData.isWorkFlow())
......@@ -1360,7 +1361,7 @@ public class BlocksML
blockDescriptor.keepResults(XMLUtil.getAttributeBooleanValue(blockNode, "keepsResults", true));
if (block instanceof InputBlock)
if ((block instanceof InputBlock) || (block instanceof OutputBlock))
blockDescriptor.setCommandLineID(XMLUtil.getAttributeValue(blockNode, "CommandLineID", ""));
workFlow.addBlock(blockDescriptor);
......
......@@ -53,6 +53,7 @@ import plugins.adufour.blocks.lang.BlockDescriptor;
import plugins.adufour.blocks.lang.BlockDescriptor.BlockStatus;
import plugins.adufour.blocks.lang.WorkFlow;
import plugins.adufour.blocks.tools.input.InputBlock;
import plugins.adufour.blocks.tools.output.OutputBlock;
import plugins.adufour.blocks.util.BlockListener;
import plugins.adufour.blocks.util.VarList;
import plugins.adufour.protocols.Protocols;
......@@ -90,7 +91,7 @@ public class BlockPanel extends JPanel implements ActionListener, BlockListener
if (dragging)
{
WorkFlow wf = workFlowPane.getWorkFlow();
if (wf.isBlockSelected(blockDesc))
{
for (BlockDescriptor bd : wf.getBlockSelection())
......@@ -846,7 +847,7 @@ public class BlockPanel extends JPanel implements ActionListener, BlockListener
menu.addSeparator();
if (blockDesc.getBlock() instanceof InputBlock)
if ((blockDesc.getBlock() instanceof InputBlock) || (blockDesc.getBlock() instanceof OutputBlock))
{
// option to retrieve parameter from command line
String tooltip = "<html><h4>Identifier used to set the value from the command line</h4></html>";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment