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

org.bidib.wizard.mvc.preferences.model.PreferencesModel Maven / Gradle / Ivy

There is a newer version: 2.0.0-M1
Show newest version
package org.bidib.wizard.mvc.preferences.model;

import java.awt.Dimension;
import java.awt.Frame;
import java.awt.Point;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;
import java.util.LinkedList;

import org.apache.commons.lang3.StringUtils;
import org.bidib.wizard.mvc.common.model.CommPort;
import org.bidib.wizard.mvc.common.model.PreferencesPortType;
import org.bidib.wizard.mvc.preferences.model.listener.PreferencesModelListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class PreferencesModel {
    private static final Logger LOGGER = LoggerFactory.getLogger(PreferencesModel.class);

    private final Collection listeners = new LinkedList();

    private final Collection commPorts = new HashSet();

    private boolean serialEnabled;

    private boolean udpEnabled;

    private PreferencesPortType selectedPortType;

    private String previousSelectedSerialSymLink;

    private String previousSelectedComPort;

    private String previousSelectedUdpHost;

    private Date startTime;

    private int timeFactor;

    private String logFilePath;

    private String labelPath;

    private boolean powerUser;

    private boolean showBoosterTable;

    private boolean alwaysShowProductNameInTree;

    private boolean ignoreWaitTimeout;

    private boolean ignoreWrongReceiveMessageNumber;

    private boolean ignoreFlowControl;

    private int firmwarePacketTimeout;

    private Dimension windowSize = new Dimension(1024, 600);

    private Point windowPosition = new Point(0, 0);

    private int extendedState = Frame.NORMAL;

    private String railcomPlusVendorIds;

    private int pomUpdateInitialDelay;

    private int pomUpdateDelayBetweenPackets;

    private int pomUpdateResendPacketCount;

    public void addPreferencesModelListener(PreferencesModelListener l) {
        listeners.add(l);
    }

    private void fireCommPortsChanged() {
        for (PreferencesModelListener l : listeners) {
            l.commPortsChanged();
        }
    }

    public Collection getCommPorts() {
        return commPorts;
    }

    /**
     * Set the commPorts and notify the listeners
     * 
     * @param commPorts
     *            the commPorts to set
     */
    public void setCommPorts(Collection commPorts) {
        this.commPorts.clear();
        this.commPorts.addAll(commPorts);
        fireCommPortsChanged();
    }

    /**
     * @return the serialEnabled
     */
    public boolean isSerialEnabled() {
        return serialEnabled;
    }

    /**
     * @param serialEnabled
     *            the serialEnabled to set
     */
    public void setSerialEnabled(boolean serialEnabled) {
        this.serialEnabled = serialEnabled;
    }

    /**
     * @return the udpEnabled
     */
    public boolean isUdpEnabled() {
        return udpEnabled;
    }

    /**
     * @param udpEnabled
     *            the udpEnabled to set
     */
    public void setUdpEnabled(boolean udpEnabled) {
        this.udpEnabled = udpEnabled;
    }

    /**
     * @return the selected portType
     */
    public PreferencesPortType getSelectedPortType() {
        LOGGER.info("Return the selected port type: {}", selectedPortType);
        return selectedPortType;
    }

    /**
     * @param selectedPortType
     *            the selected portType to set
     */
    public void setSelectedPortType(PreferencesPortType selectedPortType) {
        this.selectedPortType = selectedPortType;
    }

    // /**
    // * @return the selected debug portType
    // */
    // public PreferencesPortType getSelectedDebugPortType() {
    // LOGGER.info("Return the selected debug port type: {}", selectedDebugPortType);
    // return selectedDebugPortType;
    // }
    //
    // /**
    // * @param selectedDebugPortType
    // * the selected debug portType to set
    // */
    // public void setSelectedDebugPortType(PreferencesPortType selectedDebugPortType) {
    // this.selectedDebugPortType = selectedDebugPortType;
    // }

    /**
     * @return the previousSelectedComPort
     */
    public String getPreviousSelectedComPort() {
        return previousSelectedComPort;
    }

    /**
     * @param previousSelectedComPort
     *            the previousSelectedComPort to set
     */
    public void setPreviousSelectedComPort(String previousSelectedComPort) {
        this.previousSelectedComPort = previousSelectedComPort;
    }

    /**
     * @return the previousSelectedSerialSymLink
     */
    public String getPreviousSelectedSerialSymLink() {
        return previousSelectedSerialSymLink;
    }

    /**
     * @param previousSelectedSerialSymLink
     *            the previousSelectedSerialSymLink to set
     */
    public void setPreviousSelectedSerialSymLink(String previousSelectedSerialSymLink) {
        this.previousSelectedSerialSymLink = previousSelectedSerialSymLink;
    }

    /**
     * @return the previousSelectedUdpHost
     */
    public String getPreviousSelectedUdpHost() {
        return previousSelectedUdpHost;
    }

    /**
     * @param previousSelectedUdpHost
     *            the previousSelectedUdpHost to set
     */
    public void setPreviousSelectedUdpHost(String previousSelectedUdpHost) {
        this.previousSelectedUdpHost = previousSelectedUdpHost;
    }

    /**
     * @return the startTime
     */
    public Date getStartTime() {
        return startTime;
    }

    /**
     * @param startTime
     *            the startTime to set
     */
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    /**
     * @return the timeFactor
     */
    public int getTimeFactor() {
        return timeFactor;
    }

    /**
     * @param timeFactor
     *            the timeFactor to set
     */
    public void setTimeFactor(int timeFactor) {
        this.timeFactor = timeFactor;
    }

    /**
     * @return the firmwarePacketTimeout
     */
    public int getFirmwarePacketTimeout() {
        return firmwarePacketTimeout;
    }

    /**
     * @param firmwarePacketTimeout
     *            the firmwarePacketTimeout to set
     */
    public void setFirmwarePacketTimeout(int firmwarePacketTimeout) {
        this.firmwarePacketTimeout = firmwarePacketTimeout;
    }

    /**
     * @return the logFilePath
     */
    public String getLogFilePath() {
        return logFilePath;
    }

    /**
     * @param logFilePath
     *            the logFilePath to set
     */
    public void setLogFilePath(String logFilePath) {
        this.logFilePath = logFilePath;
    }

    /**
     * @return the labelPath
     */
    public String getLabelPath() {
        return labelPath;
    }

    /**
     * @param labelPath
     *            the labelPath to set
     */
    public void setLabelPath(String labelPath) {
        this.labelPath = labelPath;
    }

    /**
     * @return the powerUser
     */
    public boolean isPowerUser() {
        return powerUser;
    }

    /**
     * @param powerUser
     *            the powerUser to set
     */
    public void setPowerUser(boolean powerUser) {
        this.powerUser = powerUser;
    }

    /**
     * @return the showBoosterTable
     */
    public boolean isShowBoosterTable() {
        return showBoosterTable;
    }

    /**
     * @param showBoosterTable
     *            the showBoosterTable to set
     */
    public void setShowBoosterTable(boolean showBoosterTable) {
        this.showBoosterTable = showBoosterTable;
    }

    /**
     * @return the alwaysShowProductNameInTree
     */
    public boolean isAlwaysShowProductNameInTree() {
        return alwaysShowProductNameInTree;
    }

    /**
     * @param alwaysShowProductNameInTree
     *            the alwaysShowProductNameInTree to set
     */
    public void setAlwaysShowProductNameInTree(boolean alwaysShowProductNameInTree) {
        this.alwaysShowProductNameInTree = alwaysShowProductNameInTree;
    }

    /**
     * @return the ignoreWaitTimeout
     */
    public boolean isIgnoreWaitTimeout() {
        return ignoreWaitTimeout;
    }

    /**
     * @param ignoreWaitTimeout
     *            the ignoreWaitTimeout to set
     */
    public void setIgnoreWaitTimeout(boolean ignoreWaitTimeout) {
        this.ignoreWaitTimeout = ignoreWaitTimeout;
    }

    /**
     * @return the ignoreWrongReceiveMessageNumber
     */
    public boolean isIgnoreWrongReceiveMessageNumber() {
        return ignoreWrongReceiveMessageNumber;
    }

    /**
     * @param ignoreWrongReceiveMessageNumber
     *            the ignoreWrongReceiveMessageNumber to set
     */
    public void setIgnoreWrongReceiveMessageNumber(boolean ignoreWrongReceiveMessageNumber) {
        this.ignoreWrongReceiveMessageNumber = ignoreWrongReceiveMessageNumber;
    }

    /**
     * @return the ignoreFlowControl flag
     */
    public boolean isIgnoreFlowControl() {
        return ignoreFlowControl;
    }

    /**
     * @param ignoreFlowControl
     *            the ignoreFlowControl flag to set
     */
    public void setIgnoreFlowControl(boolean ignoreFlowControl) {
        this.ignoreFlowControl = ignoreFlowControl;
    }

    public void setWindowPosition(Point position, Dimension windowSize, int extendedState) {
        LOGGER
            .info("Set the new window position: {}, size: {}, extendedState: {}", position, windowSize, extendedState);
        this.windowPosition = position;
        this.windowSize = windowSize;
        this.extendedState = extendedState;
    }

    public void setEncodedWindowPosition(String encodedWindowPosition) {
        try {
            if (StringUtils.isNotBlank(encodedWindowPosition)) {
                Point pos = Preferences.getWindowPos(encodedWindowPosition);
                Dimension size = Preferences.getWindowSize(encodedWindowPosition);
                int state = Preferences.getExtendedState(encodedWindowPosition);
                setWindowPosition(pos, size, state);
            }
        }
        catch (Exception ex) {
            LOGGER.warn("Set encoded window position failed: {}", encodedWindowPosition, ex);
        }
    }

    public String getEncodedWindowPosition() {
        String encodedWindowPosition = Preferences.encodedWindowPosition(windowPosition, windowSize, extendedState);
        return encodedWindowPosition;
    }

    public void setRailcomPlusVendorIds(String vendorIds) {
        this.railcomPlusVendorIds = vendorIds;
    }

    public String getRailcomPlusVendorIds() {
        return railcomPlusVendorIds;
    }

    /**
     * @return the pomUpdateInitialDelay
     */
    public int getPomUpdateInitialDelay() {
        return pomUpdateInitialDelay;
    }

    /**
     * @param pomUpdateInitialDelay
     *            the pomUpdateInitialDelay to set
     */
    public void setPomUpdateInitialDelay(int pomUpdateInitialDelay) {
        this.pomUpdateInitialDelay = pomUpdateInitialDelay;
    }

    /**
     * @return the pomUpdateDelayBetweenPackets
     */
    public int getPomUpdateDelayBetweenPackets() {
        return pomUpdateDelayBetweenPackets;
    }

    /**
     * @param pomUpdateDelayBetweenPackets
     *            the pomUpdateDelayBetweenPackets to set
     */
    public void setPomUpdateDelayBetweenPackets(int pomUpdateDelayBetweenPackets) {
        this.pomUpdateDelayBetweenPackets = pomUpdateDelayBetweenPackets;
    }

    /**
     * @param pomUpdateResendPacketCount
     *            the pomUpdateResendPacketCount to set
     */
    public void setPomUpdateResendPacketCount(int pomUpdateResendPacketCount) {
        this.pomUpdateResendPacketCount = pomUpdateResendPacketCount;
    }

    /**
     * @return the pomUpdateResendPacketCount
     */
    public int getPomUpdateResendPacketCount() {
        return pomUpdateResendPacketCount;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder("PreferencesModel, ");
        sb.append(", selected portType: ");
        sb.append(getSelectedPortType()).append(", serialEnabled: ");
        sb.append(isSerialEnabled()).append(", previousSelectedSerialSymLink: ");
        sb.append(getPreviousSelectedSerialSymLink()).append(", previousSelectedUdpHost: ");
        sb.append(getPreviousSelectedUdpHost()).append(", udpEnabled: ");
        sb.append(isUdpEnabled()).append(", startTime: ");
        sb.append(getStartTime()).append(", timeFactor: ");
        sb.append(getTimeFactor()).append(", logFilePath: ");
        sb.append(getLogFilePath()).append(", labelPath: ");
        sb.append(getLabelPath()).append(", powerUser: ");
        sb.append(isPowerUser()).append(", showBoosterTable: ").append(isShowBoosterTable());
        sb.append(", alwaysShowProductNameInTree: ").append(isAlwaysShowProductNameInTree());
        sb.append(", ignoreWaitTimeout: ").append(isIgnoreWaitTimeout());
        sb.append(", ignoreWrongReceiveMessageNumber: ").append(isIgnoreWrongReceiveMessageNumber());
        sb.append(", ignoreFlowControl: ").append(isIgnoreFlowControl());
        sb.append(", firmwarePacketTimeout: ").append(getFirmwarePacketTimeout());
        // sb.append(", selectedDebugPortType: ").append(getSelectedDebugPortType());
        sb.append(", railcomPlusVendorIds: ").append(railcomPlusVendorIds);
        sb.append(", pomUpdateInitialDelay: ").append(getPomUpdateInitialDelay());
        sb.append(", pomUpdateDelayBetweenPackets: ").append(getPomUpdateDelayBetweenPackets());
        sb.append(", pomUpdateResendPacketCount: ").append(getPomUpdateResendPacketCount());

        return sb.toString();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy