package org.knime.knip.tracking.nodes.laptracker;
import org.knime.core.node.defaultnodesettings.SettingsModel;
import org.knime.core.node.defaultnodesettings.SettingsModelBoolean;
import org.knime.core.node.defaultnodesettings.SettingsModelDouble;
import org.knime.core.node.defaultnodesettings.SettingsModelFilterString;
import org.knime.core.node.defaultnodesettings.SettingsModelIntegerBounded;
import org.knime.core.node.defaultnodesettings.SettingsModelString;
import org.knime.knip.tracking.nodes.laptracker.LAPTrackerNodeModel.LAPTrackerAlgorithm;
import fiji.plugin.trackmate.tracking.TrackerKeys;
/**
* Simple helper class to store {@link SettingsModel}s used within
* {@link LAPTrackerNodeModel}
*
* @author Christian Dietz
* @Deprecated
*/
@Deprecated
final class LAPTrackerSettingsModels {
private LAPTrackerSettingsModels() {
// Utility class
}
/* KNIME TABLE SETTINGS */
static final String DEFAULT_TRACK_PREFIX = "Track: ";
/**
* @return settings model to store the source labeling
*/
public static SettingsModelString createSourceLabelingSettingsModel() {
return new SettingsModelString("source_labeling_settings_model", "");
}
/**
* @return settings model for BitMask selection
*/
public static SettingsModelString createBitMaskModel() {
return new SettingsModelString("bitmask_column", "");
}
/**
* @return settings model to store the time axis selection
*/
public static SettingsModelString createTimeAxisModel() {
return new SettingsModelString("feature_columns", "Time");
}
/**
* @return settings model to store Label column
*/
public static SettingsModelString createLabelModel() {
return new SettingsModelString("label_column_selection", "");
}
/**
* @return settings model for the column selection
*/
public static SettingsModelFilterString createColumnSelectionModel() {
return new SettingsModelFilterString("column_selection");
}
/**
* @return settings model to store the labeling attachment selection
*/
public static SettingsModelBoolean createAttachSourceLabelingsModel() {
return new SettingsModelBoolean("attach_original_labeling", false);
}
/**
* @return settings model to store the custom track label selection
*/
public static SettingsModelBoolean createUseCustomTrackPrefixModel() {
return new SettingsModelBoolean("use_custom_track_label", false);
}
/**
* @return settings model to store the custom label for the tracks
*/
public static SettingsModelString createCustomTrackPrefixModel() {
return new SettingsModelString("custom_track_label",
DEFAULT_TRACK_PREFIX);
}
/* TRACKMATE SETTING MODELS */
/**
* @return settings model to store default gap closing max frame distance
*/
public static SettingsModelDouble createAlternativeLinkingCostFactor() {
return new SettingsModelDouble("alternative_linking_cost_factor",
TrackerKeys.DEFAULT_ALTERNATIVE_LINKING_COST_FACTOR);
}
/**
* @return settings model to store whether splitting should be allowed
*/
public static SettingsModelBoolean createAllowSplittingModel() {
return new SettingsModelBoolean("allow_track_splitting",
TrackerKeys.DEFAULT_ALLOW_TRACK_SPLITTING);
}
/**
* @return settings model to store whether merging should be allowed
*/
public static SettingsModelBoolean createAllowMergingModel() {
return new SettingsModelBoolean("allow_track_merging",
TrackerKeys.DEFAULT_ALLOW_TRACK_MERGING);
}
/**
* @return settings model to store the used tracking algorithm
*/
public static SettingsModelString createTrackingAlgorithmModel() {
return new SettingsModelString("tracking_algorithm",
LAPTrackerAlgorithm.MUNKRESKUHN.toString());
}
/**
* @return settings model to store splitting max distance
*/
public static SettingsModelDouble createSplittingMaxDistance() {
return new SettingsModelDouble("splitting_max_distance",
TrackerKeys.DEFAULT_SPLITTING_MAX_DISTANCE);
}
/**
* @return settings model to store merging max distance
*/
public static SettingsModelDouble createMergingMaxDistance() {
return new SettingsModelDouble("merging_max_distance",
TrackerKeys.DEFAULT_MERGING_MAX_DISTANCE);
}
/**
* @return settings model to store the max distance of cell
*/
public static SettingsModelDouble createLinkingMaxDistanceModel() {
return new SettingsModelDouble("linking_max_distance",
TrackerKeys.DEFAULT_LINKING_MAX_DISTANCE);
}
/**
* @return settings model to store the cutoff percentile
*/
public static SettingsModelDouble createCutoffPercentileModel() {
return new SettingsModelDouble("cutoff_percentile",
TrackerKeys.DEFAULT_CUTOFF_PERCENTILE);
}
/**
* @return settings model to store whether gap closing should be allowed
*/
public static SettingsModelBoolean createAllowGapClosingModel() {
return new SettingsModelBoolean("allow_gap_closing",
TrackerKeys.DEFAULT_ALLOW_GAP_CLOSING);
}
/**
* @return settings model to store default gap closing max frame distance
*/
public static SettingsModelIntegerBounded createMaxFrameGapClosingModel() {
return new SettingsModelIntegerBounded("max_frame_gap_closing",
TrackerKeys.DEFAULT_GAP_CLOSING_MAX_FRAME_GAP, 0,
Integer.MAX_VALUE);
}
/**
* @return settings model to store default gap closing max distance
*/
public static SettingsModelDouble createGapClosingMaxDistanceModel() {
return new SettingsModelDouble("gap_closing_max_distance",
TrackerKeys.DEFAULT_GAP_CLOSING_MAX_DISTANCE);
}
}