7
7
import java .io .FileWriter ;
8
8
import java .io .IOException ;
9
9
import java .lang .reflect .InvocationTargetException ;
10
- import java .util .ArrayList ;
11
10
import java .util .HashSet ;
12
11
import java .util .List ;
13
12
import java .util .TreeSet ;
22
21
23
22
import ij .IJ ;
24
23
import ij .ImagePlus ;
25
- import ij .Prefs ;
26
24
import ij .gui .Toolbar ;
27
25
import io .github .mianalysis .mia .MIA ;
28
26
import io .github .mianalysis .mia .module .Categories ;
@@ -97,7 +95,12 @@ public class ManuallyIdentifyObjects extends AbstractSaver {
97
95
/**
98
96
*
99
97
*/
100
- public static final String INPUT_SEPARATOR = "Image/object input" ;
98
+ public static final String IMAGE_INPUT_SEPARATOR = "Image input" ;
99
+
100
+ /**
101
+ *
102
+ */
103
+ public static final String OBJECT_INPUT_SEPARATOR = "Object input" ;
101
104
102
105
/**
103
106
* Image onto which selections will be drawn. This will be displayed
@@ -115,6 +118,11 @@ public class ManuallyIdentifyObjects extends AbstractSaver {
115
118
*/
116
119
public static final String INPUT_OBJECTS = "Input objects" ;
117
120
121
+ /**
122
+ *
123
+ */
124
+ public static final String EXISTING_OBJECT_TYPE = "Existing object type" ;
125
+
118
126
/**
119
127
*
120
128
*/
@@ -235,6 +243,8 @@ public class ManuallyIdentifyObjects extends AbstractSaver {
235
243
*/
236
244
public static final String MESSAGE_ON_IMAGE = "Message on image" ;
237
245
246
+ public interface ExistingObjectTypes extends ObjectSelector .ExistingObjectTypes {};
247
+
238
248
protected HashSet <ManualExtension > extensions = new HashSet <>();
239
249
protected ObjectSelector objectSelector = null ;
240
250
@@ -483,6 +493,7 @@ public Status process(Workspace workspace) {// Local access to this is required
483
493
boolean addExistingObjects = parameters .getValue (ADD_EXISTING_OBJECTS , workspace );
484
494
String inputObjectsName = parameters .getValue (INPUT_OBJECTS , workspace );
485
495
boolean applyExistingClass = parameters .getValue (APPLY_EXISTING_CLASS , workspace );
496
+ String existingObjectType = parameters .getValue (EXISTING_OBJECT_TYPE , workspace );
486
497
String metadataForClass = parameters .getValue (METADATA_FOR_CLASS , workspace );
487
498
String type = parameters .getValue (VOLUME_TYPE , workspace );
488
499
boolean outputTracks = parameters .getValue (OUTPUT_TRACKS , workspace );
@@ -545,7 +556,7 @@ public Status process(Workspace workspace) {// Local access to this is required
545
556
metadataForClass = null ;
546
557
547
558
if (inputObjects != null ) {
548
- objectSelector .addObjects (inputObjects , metadataForClass );
559
+ objectSelector .addObjects (inputObjects , existingObjectType , metadataForClass );
549
560
objectSelector .updateOverlay ();
550
561
}
551
562
}
@@ -615,10 +626,13 @@ public Status process(Workspace workspace) {// Local access to this is required
615
626
protected void initialiseParameters () {
616
627
super .initialiseParameters ();
617
628
618
- parameters .add (new SeparatorP (INPUT_SEPARATOR , this ));
629
+ parameters .add (new SeparatorP (IMAGE_INPUT_SEPARATOR , this ));
619
630
parameters .add (new InputImageP (INPUT_IMAGE , this ));
631
+
632
+ parameters .add (new SeparatorP (OBJECT_INPUT_SEPARATOR , this ));
620
633
parameters .add (new BooleanP (ADD_EXISTING_OBJECTS , this , false ));
621
634
parameters .add (new CustomInputObjectsP (INPUT_OBJECTS , this ));
635
+ parameters .add (new ChoiceP (EXISTING_OBJECT_TYPE , this , ExistingObjectTypes .REGIONS , ExistingObjectTypes .ALL ));
622
636
parameters .add (new BooleanP (ALLOW_MISSING_OBJECTS , this , false ));
623
637
parameters .add (new BooleanP (APPLY_EXISTING_CLASS , this , false ));
624
638
parameters .add (new CustomObjectMetadataP (METADATA_FOR_CLASS , this ));
@@ -657,11 +671,14 @@ public Parameters updateAndGetParameters() {
657
671
Workspace workspace = null ;
658
672
Parameters returnedParameters = new Parameters ();
659
673
660
- returnedParameters .add (parameters .get (INPUT_SEPARATOR ));
674
+ returnedParameters .add (parameters .get (IMAGE_INPUT_SEPARATOR ));
661
675
returnedParameters .add (parameters .get (INPUT_IMAGE ));
676
+
677
+ returnedParameters .add (parameters .get (OBJECT_INPUT_SEPARATOR ));
662
678
returnedParameters .add (parameters .get (ADD_EXISTING_OBJECTS ));
663
679
if ((boolean ) parameters .getValue (ADD_EXISTING_OBJECTS , workspace )) {
664
680
returnedParameters .add (parameters .get (INPUT_OBJECTS ));
681
+ returnedParameters .add (parameters .get (EXISTING_OBJECT_TYPE ));
665
682
returnedParameters .add (parameters .get (ALLOW_MISSING_OBJECTS ));
666
683
boolean allowMissingObjects = parameters .getValue (ALLOW_MISSING_OBJECTS , workspace );
667
684
((CustomInputObjectsP ) parameters .get (INPUT_OBJECTS )).setAllowMissingObjects (allowMissingObjects );
0 commit comments