/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.broadcast.gui;
import net.codjo.gui.toolkit.util.ErrorDialog;
import net.codjo.mad.gui.framework.AbstractGuiAction;
import net.codjo.mad.gui.framework.GuiContext;
import java.awt.event.ActionEvent;
import java.beans.PropertyVetoException;
import javax.swing.JInternalFrame;
import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent;
/**
* Description of the Class
*
* @author $Author: gonnot $
* @version $Revision: 1.1.1.1 $
*/
public class BroadcastSectionsAction extends AbstractGuiAction {
CleanUpListener cleanUpListener = new CleanUpListener();
JInternalFrame frame;
public BroadcastSectionsAction(GuiContext ctxt) {
super(ctxt, "Sections/Colonnes", "Param�trage des sections et colonnes", null,
"ParamExportSectionsColumns");
}
public void actionPerformed(ActionEvent event) {
if (frame == null) {
displayNewWindow();
}
else {
try {
frame.setSelected(true);
}
catch (PropertyVetoException ex) {
System.err.println("[PropertyVeto] " + ex.getMessage());
}
}
}
private void displayNewWindow() {
try {
frame = new BroadcastSectionsWindow(getGuiContext());
frame.addInternalFrameListener(cleanUpListener);
getDesktopPane().add(frame);
frame.pack();
frame.setVisible(true);
frame.setSelected(true);
}
catch (Exception ex) {
ex.printStackTrace();
ErrorDialog.show(getDesktopPane(), "Impossible d'afficher la liste", ex);
}
}
private class CleanUpListener extends InternalFrameAdapter {
@Override
public void internalFrameActivated(InternalFrameEvent event) {}
@Override
public void internalFrameClosed(InternalFrameEvent event) {
event.getInternalFrame().removeInternalFrameListener(this);
frame = null;
}
@Override
public void internalFrameClosing(InternalFrameEvent event) {
event.getInternalFrame().removeInternalFrameListener(this);
frame = null;
}
}
}