/* * ConfigView.java * * Copyright (c) 2003-2004 Digi International * This program and the information contained in it is confidential and * proprietary to Digi International and may not be used, copied, or re- * produced without the prior written permission of Digi International. * */ package com.digi.config.ui; import com.digi.config.core.*; import javax.swing.*; import java.awt.Component; import java.net.*; import java.util.*; /** * This interface defines the basic operations required for all configuration views * that are used in the configuration application. */ public interface ConfigView { /** * Returns a one word name identifying this view. */ public String getName(); /** * Return the Component that displays the primary content for this view */ public Component getViewContent(); /** * Returns the Component that displays the heading of the view. * If this view has no heading to display this method returns null. */ public Component getViewHeading(); /** * Returns the Component that displays the buttons below the view. * If this view has no buttons to display this method returns null. */ public Component getViewButtons(); /** * Returns a resource key to the help information for this view. The actual * URL will be looked up in the Help Resource bundle. */ public String getHelpResource(); /** * Informs view what device to work with. View should flush any * cached device data and mark current view content as invalid * so that it is refreshed appropriatly. */ public void setDevice(Device device); /** * This method is called to instruct the view that it is about to be made * active. When a view is active it needs to make sure its content is correct. * An example of why a panel may be inactive is if it were on a tabbed pane * and was not currently visible or if the user selected some other view. */ public void activate(); /** * This method is called to instruct the view that it is about to be made * inactive. When a view is inactive, it does not need to worry * about maintaining its content in a correct state. An example of why a panel * may be inactive is if it were on a tabbed pane and was not currently visible * or if the user selected some other view. */ public void deactivate(); /** * Indicates if any changes have been made by the user that have not yet been * saved to the device(ie committed). */ public boolean isChanged(); /** * This method instructs the view to validate any of the changes the user has made * within the view. Any errors are to be added to the provided errorList. * * @param errorList is a collection of ViewValidationError objects */ public void validateChanges(Collection errorList); /** * This method instructs the view to place any changes the user has made within * the view into the provided clusters. Once the changes have been saved to * to the device, a subsequent call to commitChanges() will be made. */ public void getChanges(KvpNode settingCluster, KvpNode stateCluster); /** * Instructs the view to consider any user changes within the view as * saved to the device (ie committed). */ public void commitChanges(); /** * Instructs the view to discard any changes the user has made within the * view and revert those fields to the original state. The view is also * free to refresh all its fields to the present cached state of the device at * this time. */ public void cancelChanges(); }