/*******************************************************************************
* Copyright 2010 Simon Mieth
*
* 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.kabeja.svg.action;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JComponent;
import javax.swing.JPopupMenu;
import javax.swing.SwingUtilities;
import org.kabeja.DraftDocument;
import org.kabeja.svg.SVGGenerator;
import org.kabeja.svg.ui.PopUpButton;
import org.kabeja.ui.impl.AbstractPropertiesEditor;
public class LayoutSwitchAction extends AbstractPropertiesEditor
implements ViewerAction, CustomActionView, DraftDocumentAction {
PopUpButton button;
JCheckBoxMenuItem defaultItem;
public JComponent getView() {
if (this.button == null) {
ItemListener l = new ItemListener() {
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
properties.put(SVGGenerator.PROPERTY_DOCUMENT_BOUNDS_RULE,
((JCheckBoxMenuItem) e.getItem()).getText());
SwingUtilities.invokeLater(new Runnable() {
public void run() {
firePropertiesChangedEvent();
}
});
}
}
};
JPopupMenu menu = new JPopupMenu();
ButtonGroup group = new ButtonGroup();
JCheckBoxMenuItem item = new JCheckBoxMenuItem(SVGGenerator.PROPERTY_DOCUMENT_BOUNDS_RULE_MODELSPACE_VALUE);
// item.setIcon(new ImageIcon(UIUtils.resourceToBytes(
// this.getClass(), "/icons/layout_ms.png")));
item.addItemListener(l);
group.add(item);
menu.add(item);
this.defaultItem = item;
item = new JCheckBoxMenuItem(SVGGenerator.PROPERTY_DOCUMENT_BOUNDS_RULE_MODELSPACE_LIMITS_VALUE);
// item.addItemListener(l);
// item.setIcon(new ImageIcon(UIUtils.resourceToBytes(
// this.getClass(), "/icons/layout_ms_l.png")));
group.add(item);
menu.add(item);
item = new JCheckBoxMenuItem(SVGGenerator.PROPERTY_DOCUMENT_BOUNDS_RULE_PAPERSPACE_VALUE);
item.addItemListener(l);
// item.setIcon(new ImageIcon(UIUtils.resourceToBytes(
// this.getClass(), "/icons/layout_ps.png")));
group.add(item);
menu.add(item);
item = new JCheckBoxMenuItem(SVGGenerator.PROPERTY_DOCUMENT_BOUNDS_RULE_PAPERSPACE_LIMITS_VALUE);
item.addItemListener(l);
// item.setIcon(new ImageIcon(UIUtils.resourceToBytes(
// this.getClass(), "/icons/layout_ps_l.png")));
group.add(item);
menu.add(item);
this.button = new PopUpButton(menu, "");
this.defaultItem.setSelected(true);
}
return this.button;
}
public void setDXFDocument(DraftDocument doc) {
this.defaultItem.setSelected(true);
}
}