/**
* Copyright (c) 2009 Juwi MacMillan Group GmbH
*
* 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 de.juwimm.cms.gui.views;
import static de.juwimm.cms.client.beans.Application.getBean;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.AbstractAction;
import javax.swing.ComponentInputMap;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.KeyStroke;
import org.apache.log4j.Logger;
import org.jvnet.flamingo.common.JCommandButton;
import org.jvnet.flamingo.common.icon.ImageWrapperResizableIcon;
import de.juwimm.cms.client.beans.Beans;
import de.juwimm.cms.common.Constants;
import de.juwimm.cms.gui.controls.LoadableViewComponentPanel;
import de.juwimm.cms.gui.ribbon.CommandButton;
import de.juwimm.cms.gui.views.menuentry.PanMenuentryExternallink;
import de.juwimm.cms.util.ActionHub;
import de.juwimm.cms.util.Communication;
import de.juwimm.cms.util.UIConstants;
import de.juwimm.cms.vo.ViewComponentValue;
/**
* <p>Title: Tizzit </p>
* <p>Description: Content Management System</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: JuwiMacMillan Group GmbH</p>
* @author <a href="mailto:s.kulawik@juwimm.com">Sascha-Matthias Kulawik</a>
* @version $Id$
*/
public class PanExternallinkView extends JPanel implements LoadableViewComponentPanel, ActionListener {
private static Logger log = Logger.getLogger(PanExternallinkView.class);
private final BorderLayout borderLayout1 = new BorderLayout();
private final JTabbedPane tab = new JTabbedPane();
private PanMenuentryExternallink panExternalLink;
private final Communication comm = ((Communication) getBean(Beans.COMMUNICATION));
private final JPanel jPanel1 = new JPanel();
private JCommandButton cmdSave;
private JCommandButton cmdCancel;
public PanExternallinkView() {
try {
jbInit();
tab.add(panExternalLink, Constants.rb.getString("panel.toolLink"));
ComponentInputMap im = new ComponentInputMap(this);
im.put(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK), "saveContent");
this.setInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW, im);
this.getActionMap().put("saveContent", new AbstractAction() {
public void actionPerformed(ActionEvent e) {
try {
save();
} catch (Exception exe) {
log.error("Save Error", exe);
}
}
});
} catch (Exception exe) {
log.error("Initialization Error", exe);
}
}
void jbInit() throws Exception {
this.setLayout(borderLayout1);
panExternalLink = new PanMenuentryExternallink(comm);
this.cmdCancel = new CommandButton(Constants.rb.getString("dialog.cancel"), ImageWrapperResizableIcon.getIcon(UIConstants.RIBBON_CLOSE.getImage(), new Dimension(32, 32)));
this.cmdSave = new CommandButton(Constants.rb.getString("dialog.save"), ImageWrapperResizableIcon.getIcon(UIConstants.RIBBON_SAVE.getImage(), new Dimension(32, 32)));
cmdSave.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
cmdSaveActionPerformed(e);
}
});
cmdCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(ActionEvent e) {
cmdCancelActionPerformed(e);
}
});
jPanel1.setLayout(new GridBagLayout());
this.add(tab, BorderLayout.CENTER);
this.add(jPanel1, BorderLayout.SOUTH);
jPanel1.add(cmdSave, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.WEST, GridBagConstraints.NONE, new Insets(5, 5, 5, 0), 30, 0));
jPanel1.add(cmdCancel, new GridBagConstraints(1, 0, 1, 1, 1.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(5, 0, 5, 5), 30, 0));
}
public void save() throws Exception {
panExternalLink.save();
}
public void load(ViewComponentValue value) {
ActionHub.addActionListener(this);
panExternalLink.load(value);
}
public void unload() {
ActionHub.removeActionListener(this);
panExternalLink.unload();
}
private void cmdSaveActionPerformed(ActionEvent e) {
Constants.EDIT_CONTENT = false;
try {
save();
} catch (Exception exe) {
log.error("Save Error", exe);
}
}
private void cmdCancelActionPerformed(ActionEvent e) {
Constants.EDIT_CONTENT = false;
ActionHub.fireActionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, Constants.ACTION_TREE_DESELECT));
}
public void actionPerformed(ActionEvent ae) {
if (ae.getActionCommand().equals(Constants.ACTION_SAVE)) {
try {
save();
} catch (Exception exe) {
log.error("Save Error", exe);
}
}
}
}