package hr.fer.zemris.ecf.gui.layout.impl;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JFrame;
import hr.fer.zemris.ecf.gui.layout.EntryFieldDisplay;
import hr.fer.zemris.ecf.gui.layout.EntryListPanel;
import hr.fer.zemris.ecf.gui.layout.IFieldListener;
import hr.fer.zemris.ecf.param.EntryBlock;
/**
* Panel for displaying added entry and button for removing that entry. This
* object displays entry in a new {@link JFrame}.
*
* @author Domagoj
*
* @param <T>
* {@link EntryBlock} instance
*/
public class FrameDisplay<T extends EntryBlock> extends EntryFieldDisplay<T> {
private static final long serialVersionUID = 1L;
public FrameDisplay(IFieldListener listener, T block, EntryListPanel blockDisplay) {
super(listener, block, blockDisplay);
}
@Override
protected Action displayAction() {
return new AbstractAction() {
private static final long serialVersionUID = 1L;
@Override
public void actionPerformed(ActionEvent e) {
final JFrame frame = new JFrame(block.getName());
frame.setLayout(new BorderLayout());
frame.setLocation(200, 300);
frame.add(blockDisplay, BorderLayout.CENTER);
JButton button = new JButton(new AbstractAction() {
private static final long serialVersionUID = 1L;
@Override
public void actionPerformed(ActionEvent e) {
frame.dispose();
}
});
button.setText("Done");
frame.add(button, BorderLayout.SOUTH);
frame.pack();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}
};
}
}