/*
* Copyright 2008-2011 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jdal.swing.table;
import java.awt.event.ActionEvent;
import javax.swing.Icon;
import javax.swing.JButton;
import org.jdal.swing.form.FormUtils;
import org.jdal.swing.View;
/**
* Hide and show FilterView panel Action
*
* @author Jose Luis Martin - (jlm@joseluismartin.info)
*/
public class HideShowFilterAction extends TablePanelAction {
public static final String DEFAULT_SHOW_FILTER_ICON = "/images/table/22x22/filter-show.png";
public static final String DEFAULT_HIDE_FILTER_ICON = "/images/table/22x22/filter-hide.png";
private static final long serialVersionUID = 1L;
private Icon showFilterIcon;
private Icon hideFilterIcon;
public void init() {
showFilterIcon = FormUtils.getIcon(showFilterIcon, DEFAULT_SHOW_FILTER_ICON);
hideFilterIcon = FormUtils.getIcon(hideFilterIcon, DEFAULT_HIDE_FILTER_ICON);
setIcon(hideFilterIcon);
setName(messageSource.getMessage("HideShowFilterAction.hideFilter"));
}
@SuppressWarnings("unchecked")
public void actionPerformed(ActionEvent e) {
View<Object> filterView = getTablePanel().getFilterView();
if (filterView != null) {
filterView.getPanel().setVisible(!filterView.getPanel().isVisible());
String value = filterView.getPanel().isVisible() ?
messageSource.getMessage("HideShowFilterAction.hideFilter") :
messageSource.getMessage("HideShowFilterAction.showFilter");
Icon icon = filterView.getPanel().isVisible() ? hideFilterIcon : showFilterIcon;
setName(value);
setIcon(icon);
}
else {
((JButton) e.getSource()).setEnabled(false);
}
}
/**
* @return the showFilterIcon
*/
public Icon getShowFilterIcon() {
return showFilterIcon;
}
/**
* @param showFilterIcon the showFilterIcon to set
*/
public void setShowFilterIcon(Icon showFilterIcon) {
this.showFilterIcon = showFilterIcon;
}
}