001: /*
002: * Gruntspud
003: *
004: * Copyright (C) 2002 Brett Smith.
005: *
006: * Written by: Brett Smith <t_magicthize@users.sourceforge.net>
007: *
008: * This program is free software; you can redistribute it and/or
009: * modify it under the terms of the GNU Library General Public License
010: * as published by the Free Software Foundation; either version 2 of
011: * the License, or (at your option) any later version.
012: * This program is distributed in the hope that it will be useful,
013: * but WITHOUT ANY WARRANTY; without even the implied warranty of
014: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
015: * GNU Library General Public License for more details.
016: *
017: * You should have received a copy of the GNU Library General Public
018: * License along with this program; if not, write to the Free Software
019: * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
020: */
021:
022: package gruntspud.ui.preferences;
023:
024: import gruntspud.filter.CVSFileFilter;
025: import gruntspud.ui.CVSFileDirectoryFilterPane;
026: import gruntspud.ui.CVSFileStatusFilterPane;
027: import gruntspud.ui.CVSFileSubstTypeFilterPane;
028:
029: import java.awt.BorderLayout;
030:
031: import javax.swing.BorderFactory;
032: import javax.swing.JPanel;
033:
034: /**
035: * Description of the Class
036: *
037: *@author magicthize
038: *@created 26 May 2002
039: */
040: public class CVSFileFilterPane extends JPanel {
041: private CVSFileFilter filter;
042: private CVSFileStatusFilterPane cvsFileStatusFilterPane;
043: private CVSFileSubstTypeFilterPane cvsFileTypeFilterPane;
044: private CVSFileDirectoryFilterPane cvsFileDirectoryFilterPane;
045:
046: /**
047: * Constructor for the FilterPane object
048: *
049: *@param filter Description of the Parameter
050: */
051: public CVSFileFilterPane() {
052: super (new BorderLayout());
053:
054: //
055: cvsFileTypeFilterPane = new CVSFileSubstTypeFilterPane();
056: cvsFileTypeFilterPane.setBorder(BorderFactory
057: .createTitledBorder("File types"));
058:
059: //
060: cvsFileStatusFilterPane = new CVSFileStatusFilterPane();
061: cvsFileStatusFilterPane.setBorder(BorderFactory
062: .createTitledBorder("File status"));
063:
064: //
065: cvsFileDirectoryFilterPane = new CVSFileDirectoryFilterPane();
066: cvsFileDirectoryFilterPane.setBorder(BorderFactory
067: .createTitledBorder("Directory status"));
068:
069: //
070: JPanel west = new JPanel(new BorderLayout());
071: west.add(cvsFileTypeFilterPane, BorderLayout.CENTER);
072: west.add(cvsFileDirectoryFilterPane, BorderLayout.SOUTH);
073:
074: JPanel top = new JPanel(new BorderLayout());
075: top.add(west, BorderLayout.CENTER);
076: top.add(cvsFileStatusFilterPane, BorderLayout.EAST);
077:
078: //
079: add(top, BorderLayout.NORTH);
080: }
081:
082: /**
083: * Description of the Method
084: *
085: *@param evt Description of the Parameter
086: */
087: public void apply() {
088: cvsFileTypeFilterPane.apply();
089: cvsFileStatusFilterPane.apply();
090: cvsFileDirectoryFilterPane.apply();
091: }
092:
093: /**
094: * Sets the filter attribute of the FilterPane object
095: *
096: *@param filter The new filter value
097: */
098: public void setFilter(CVSFileFilter filter) {
099: this .filter = filter;
100: cvsFileTypeFilterPane.setCVSFileSubstTypeFilter(filter
101: .getCVSFileSubstTypeFilter());
102: cvsFileTypeFilterPane.setEnabled(!filter.isPreset());
103: cvsFileStatusFilterPane.setCVSFileStatusFilter(filter
104: .getCVSFileStatusFilter());
105: cvsFileStatusFilterPane.setEnabled(!filter.isPreset());
106: cvsFileDirectoryFilterPane.setCVSFileDirectoryFilter(filter
107: .getCVSFileDirectoryFilter());
108: cvsFileDirectoryFilterPane.setEnabled(!filter.isPreset());
109:
110: }
111:
112: /**
113: * Gets the filter attribute of the FilterPane object
114: *
115: *@return The filter value
116: */
117: public CVSFileFilter getFilter() {
118: return filter;
119: }
120: }
|