/************************************************************************** OmegaT - Computer Assisted Translation (CAT) tool with fuzzy matching, translation memory, keyword search, glossaries, and translation leveraging into updated projects. Copyright (C) 2008 Alex Buloichik Home page: http://www.omegat.org/ Support center: http://groups.yahoo.com/group/OmegaT/ This file is part of OmegaT. OmegaT is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. OmegaT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. **************************************************************************/ package org.omegat.gui.main; import java.awt.Cursor; import java.awt.Font; import java.awt.HeadlessException; import javax.swing.JFrame; import com.vlsolutions.swing.docking.Dockable; /** * Interface for access to main window functionality. * * @author Alex Buloichik (alex73mail@gmail.com) */ public interface IMainWindow { /** * Get application frame. */ JFrame getApplicationFrame(); /** * Lock UI for long-term operations. */ void lockUI(); /** * Unlock UI after locking. */ void unlockUI(); /** * Get main application font. */ Font getApplicationFont(); /** * Show message in status bar from resource bundle by key. * * @param messageKey * message key in resource bundle * @param params * message parameters for formatting */ void showStatusMessageRB(String messageKey, Object... params); /** * Same as {@link #showStatusMessageRB(String, Object...)} but this will * clear the message after ten seconds. * * @param messageKey * message key in resource bundle * @param params * message parameters for formatting */ void showTimedStatusMessageRB(String messageKey, Object... params); /** * Show message in progress bar. Progress bar shows the translation progress: nr. of segments/words etc translated/to do. * * @param messageText * message text */ void showProgressMessage(String messageText); /** * Show message in length label. Length label shows length (in nr of characters) of current segment * * @param messageText * message text */ void showLengthMessage(String messageText); /** * Display warning. * * @param warningKey * warning message key in resource bundle * @param params * warning text parameters */ void displayWarningRB(String warningKey, Object... params); /** * Same as {@link #displayWarningRB(String, Object...)} but this will close the previous * dialog if the dialog is still open and the supplied supercedesKey matches the previous * dialog's key. * * @param warningKey * warning message key in resource bundle * @param supercedesKey * the key of the warning dialog to close, if still open * @param params * warning text parameters */ void displayWarningRB(String warningKey, String supercedesKey, Object... params); /** * Display error. * * @param ex * exception to show * @param errorKey * error message key in resource bundle * @param params * error text parameters */ void displayErrorRB(Throwable ex, String errorKey, Object... params); /** * Show message in an ErrorDialog * * @param message * message key in resource bundle of message that is to be * displayed * @param args * arguments of the resource bundle message * @param title * title of dialog. message key in resource bundle of title that * is to be displayed */ void showErrorDialogRB(String title, String message, Object... args); /** * shows a confirm dialog. For a GUI main window, this can be implemented as JOptionPane.showConfirmDialog * * @param message the Object to display * @param title the title string for the dialog (can be null) * @param optionType an integer designating the JOptionPane options available on the dialog: YES_NO_OPTION, YES_NO_CANCEL_OPTION, or OK_CANCEL_OPTION * @param messageType an integer designating the kind of message this is; primarily used to determine the icon from the pluggable Look and Feel: (JOptionPane ERROR_MESSAGE, INFORMATION_MESSAGE, WARNING_MESSAGE, QUESTION_MESSAGE, or PLAIN_MESSAGE * @return an integer indicating the option selected by the user * @throws HeadlessException if GraphicsEnvironment.isHeadless returns true */ int showConfirmDialog(Object message, String title, int optionType, int messageType) throws HeadlessException; /** * Shows message to user * * @param message the message to show */ void showMessageDialog(String message); /** * Add new dockable pane into application frame. This method called on * application startup. * * @param pane * dockable pane */ void addDockable(Dockable pane); /** * Sets cursor of window * @param cursor the new cursor */ void setCursor(Cursor cursor); /** * Retrieves current cursor of window * @return the current cursor */ Cursor getCursor(); /** * Retrieve main manu instance. */ IMainMenu getMainMenu(); }