package org.knime.knip.tracking.nodes.hiliter; import org.knime.core.data.StringValue; import org.knime.core.node.defaultnodesettings.DefaultNodeSettingsPane; import org.knime.core.node.defaultnodesettings.DialogComponentBoolean; import org.knime.core.node.defaultnodesettings.DialogComponentColumnNameSelection; import org.knime.core.node.defaultnodesettings.DialogComponentString; import org.knime.core.node.defaultnodesettings.DialogComponentStringSelection; import org.knime.core.node.defaultnodesettings.SettingsModelBoolean; import org.knime.core.node.defaultnodesettings.SettingsModelColumnName; import org.knime.core.node.defaultnodesettings.SettingsModelString; import org.knime.knip.core.util.EnumUtils; import org.knime.knip.tracking.nodes.hiliter.TrackHilitePropagatorSettingsModels.TrackHilitingMode; /** * @author <a href="mailto:gabriel.einsdorf@uni.kn">Gabriel Einsdorf</a> */ public class TrackHilitePropagatorNodeDialog extends DefaultNodeSettingsPane { /* * Settings Models */ private final SettingsModelColumnName m_trackColumnModel = TrackHilitePropagatorSettingsModels .createTrackColumnSelectionSettingsModel(); private final SettingsModelBoolean m_useCustomTrackPrefixModel = TrackHilitePropagatorSettingsModels .createUseCustomTrackPrefixModel(); private final SettingsModelString m_customTrackPrefixModel = TrackHilitePropagatorSettingsModels.createCustomTrackPrefixModel(); private final SettingsModelString m_highlitingModeModel = TrackHilitePropagatorSettingsModels.createTrackHilitingModeModel(); /** * Creates the Node dialog for the Track Hilite Propagator node. */ protected TrackHilitePropagatorNodeDialog() { createNewGroup("Basic"); addBasicOptions(); closeCurrentGroup(); createNewGroup("Custom Labeling"); addLabelingOptions(); closeCurrentGroup(); } @SuppressWarnings("unchecked") private void addBasicOptions() { addDialogComponent( new DialogComponentColumnNameSelection(m_trackColumnModel, "Tracks Column", 0, false, false, StringValue.class)); addDialogComponent( new DialogComponentStringSelection(m_highlitingModeModel, "Hiliting Mode", EnumUtils.getStringListFromToString( TrackHilitingMode.values()))); } private void addLabelingOptions() { setHorizontalPlacement(true); m_useCustomTrackPrefixModel .addChangeListener(e -> m_customTrackPrefixModel.setEnabled( m_useCustomTrackPrefixModel.getBooleanValue())); addDialogComponent( new DialogComponentBoolean(m_useCustomTrackPrefixModel, "Tracks are labeled with a custom prefix")); m_customTrackPrefixModel.setEnabled(false); addDialogComponent( new DialogComponentString(m_customTrackPrefixModel, "Prefix:")); setHorizontalPlacement(false); } }