001/* 002 * Copyright (c) 2010 The Regents of the University of California. 003 * All rights reserved. 004 * 005 * '$Author: aschultz $' 006 * '$Date: 2010-12-23 19:01:04 +0000 (Thu, 23 Dec 2010) $' 007 * '$Revision: 26600 $' 008 * 009 * Permission is hereby granted, without written agreement and without 010 * license or royalty fees, to use, copy, modify, and distribute this 011 * software and its documentation for any purpose, provided that the above 012 * copyright notice and the following two paragraphs appear in all copies 013 * of this software. 014 * 015 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY 016 * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES 017 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF 018 * THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF 019 * SUCH DAMAGE. 020 * 021 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, 022 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 023 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE 024 * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF 025 * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, 026 * ENHANCEMENTS, OR MODIFICATIONS. 027 * 028 */ 029 030package org.kepler.gui; 031 032import ptolemy.actor.gui.TableauFrame; 033 034/** 035 * This interface is to be implemented by anyone wanting to add a tab to the 036 * PreferencesFrame. The PreferencesTabFactory generates instances of 037 * PreferencesTab. 038 * 039 * @author Aaron Schultz 040 * 041 */ 042public interface PreferencesTab { 043 044 /** 045 * PreferencesTab usually will need access to the configuration of the 046 * Tableau that is opened in the BasicGraphFrame. This method will be called 047 * before calling initializeTab. 048 * 049 * @param config 050 */ 051 public abstract void setParent(TableauFrame frame); 052 053 /** 054 * Initialization of the tab should be done at some point after the 055 * constructor is called. The setConfiguration method is called before 056 * calling initializeTab() and this allows for easily adding new functions 057 * to this interface later on. 058 * 059 * @throws Exception 060 */ 061 public abstract void initializeTab() throws Exception; 062 063 /** 064 * This method should return the name of the tab which is used to label the 065 * tab in the PreferencesFrame. 066 */ 067 public abstract String getTabName(); 068 069 /** 070 * This method is called as the preferences frame is closed legitimately 071 * meaning that all changes to the preferences should be saved. 072 */ 073 public abstract void onClose(); 074 075 /** 076 * This method is called if the user presses the cancel button on the preferences frame. 077 * In this case all changes to the preferences should be ignored. 078 */ 079 public abstract void onCancel(); 080 081}