/*
* Copyright (c) 2014 tabletoptool.com team.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* rptools.com team - initial implementation
* tabletoptool.com team - further development
*/
package com.t3.client.swing;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import com.t3.MD5Key;
import com.t3.client.TabletopTool;
import com.t3.client.ui.assetpanel.AssetPanel;
import com.t3.model.Asset;
import com.t3.model.AssetManager;
import com.t3.swing.SelectionListener;
import com.t3.swing.SwingUtil;
public class ImageChooserDialog extends JDialog {
private MD5Key imageId = null;
private AssetPanel imageChooser = new AssetPanel("imageAssetPanel", TabletopTool.getFrame().getAssetPanel().getModel());
public ImageChooserDialog(JFrame owner) {
super(owner, "Choose Image", true);
setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
imageId = null;
setVisible(false);
}
});
JPanel panel = new JPanel(new BorderLayout());
panel.add(BorderLayout.CENTER, imageChooser);
panel.add(BorderLayout.SOUTH, createButtonPanel());
setContentPane(panel);
setSize(400, 500);
SwingUtil.centerOver(this, getOwner());
imageChooser.addImageSelectionListener(new SelectionListener() {
@Override
public void selectionPerformed(List<Object> selected) {
if (selected.size() < 0 || (Integer)selected.get(0) < 0) {
return;
}
Asset asset = imageChooser.getAsset((Integer)selected.get(0));
imageId = asset.getId();
// Put the asset into the asset manager since we have the asset handy here
AssetManager.putAsset(asset);
}
});
}
public MD5Key getImageId() {
return imageId;
}
private JPanel createButtonPanel() {
JPanel panel = new JPanel(new FlowLayout(FlowLayout.RIGHT));
panel.add(createOKButton());
panel.add(createCancelButton());
return panel;
}
private JButton createOKButton() {
JButton button = new JButton("OK");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent e) {
setVisible(false);
}
});
return button;
}
private JButton createCancelButton() {
JButton button = new JButton("Cancel");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent e) {
imageId = null;
setVisible(false);
}
});
return button;
}
}