001: //The contents of this file are subject to the Mozilla Public License Version 1.1
002: //(the "License"); you may not use this file except in compliance with the
003: //License. You may obtain a copy of the License at http://www.mozilla.org/MPL/
004: //
005: //Software distributed under the License is distributed on an "AS IS" basis,
006: //WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
007: //for the specific language governing rights and
008: //limitations under the License.
009: //
010: //The Original Code is "The Columba Project"
011: //
012: //The Initial Developers of the Original Code are Frederik Dietz and Timo
013: // Stich.
014: //Portions created by Frederik Dietz and Timo Stich are Copyright (C) 2003.
015: //
016: //All Rights Reserved.
017: package org.columba.mail.gui.tree.action;
018:
019: import java.awt.event.ActionEvent;
020:
021: import org.columba.api.gui.frame.IFrameMediator;
022: import org.columba.api.selection.ISelectionListener;
023: import org.columba.api.selection.SelectionChangedEvent;
024: import org.columba.core.gui.action.AbstractColumbaAction;
025: import org.columba.mail.command.IMailFolderCommandReference;
026: import org.columba.mail.config.IFolderItem;
027: import org.columba.mail.folder.IMailbox;
028: import org.columba.mail.folder.virtual.VirtualFolder;
029: import org.columba.mail.gui.config.filter.ConfigFrame;
030: import org.columba.mail.gui.config.search.SearchFrame;
031: import org.columba.mail.gui.frame.AbstractMailFrameController;
032: import org.columba.mail.gui.frame.MailFrameMediator;
033: import org.columba.mail.gui.tree.selection.TreeSelectionChangedEvent;
034: import org.columba.mail.util.MailResourceLoader;
035:
036: /**
037: * @author frd
038: *
039: * To change this generated comment go to Window>Preferences>Java>Code
040: * Generation>Code and Comments
041: */
042:
043: public class FilterPreferencesAction extends AbstractColumbaAction
044: implements ISelectionListener {
045:
046: public FilterPreferencesAction(IFrameMediator frameMediator) {
047: super (frameMediator, MailResourceLoader.getString("menu",
048: "mainframe", "menu_folder_filterconfig"));
049:
050: // tooltip text
051: putValue(SHORT_DESCRIPTION, MailResourceLoader.getString(
052: "menu", "mainframe", "menu_folder_filterconfig")
053: .replaceAll("&", ""));
054:
055: setEnabled(false);
056:
057: ((MailFrameMediator) frameMediator)
058: .registerTreeSelectionListener(this );
059: }
060:
061: /*
062: * (non-Javadoc)
063: *
064: * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
065: */
066: public void actionPerformed(ActionEvent evt) {
067: IMailFolderCommandReference r = ((MailFrameMediator) getFrameMediator())
068: .getTreeSelection();
069: IMailbox folder = (IMailbox) r.getSourceFolder();
070:
071: if (folder == null) {
072: return;
073: }
074:
075: IFolderItem item = folder.getConfiguration();
076:
077: if (item == null) {
078: return;
079: }
080:
081: if (folder instanceof VirtualFolder) {
082: new SearchFrame(
083: (AbstractMailFrameController) frameMediator,
084: (VirtualFolder) folder);
085: } else {
086: new ConfigFrame(frameMediator, folder);
087: }
088: // folder.showFilterDialog(((AbstractMailFrameController)
089: // getFrameMediator()));
090: }
091:
092: /*
093: * (non-Javadoc)
094: *
095: * @see org.columba.core.gui.util.ISelectionListener#selectionChanged(org.columba.core.gui.util.SelectionChangedEvent)
096: */
097: public void selectionChanged(SelectionChangedEvent e) {
098: TreeSelectionChangedEvent treeEvent = (TreeSelectionChangedEvent) e;
099:
100: if (treeEvent.getSelected().length == 1
101: && treeEvent.getSelected()[0] instanceof IMailbox) {
102: setEnabled(true);
103: } else {
104: setEnabled(false);
105: }
106: }
107: }
|