All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.invation.code.toval.graphic.dialog.DefineGenerateDialog Maven / Gradle / Ivy

package de.invation.code.toval.graphic.dialog;

import java.awt.BorderLayout;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.ScrollPaneConstants;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

import de.invation.code.toval.graphic.component.BoxLayoutPanel;
import de.invation.code.toval.graphic.renderer.AlternatingRowColorListCellRenderer;

public class DefineGenerateDialog extends AbstractDialog> {

	private static final long serialVersionUID = -1396837102031308301L;
	
	private JList stringList;
	private JButton btnDefine;
	private JButton btnGenerate;
	private DefaultListModel stringListModel;
	
	protected DefineGenerateDialog(Window owner, String title) {
		super(owner, title);
		initialize();
	}

	protected void initialize() {
		stringListModel = new DefaultListModel();
	}

	@Override
	protected void addComponents() throws Exception {
		mainPanel().setLayout(new BorderLayout());
		
		JPanel buttonPanel = new BoxLayoutPanel();
		buttonPanel.add(getButtonDefine());
		buttonPanel.add(getButtonGenerate());
		mainPanel().add(buttonPanel, BorderLayout.PAGE_START);

		JScrollPane scrollPane = new JScrollPane(getActivityList());
		scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
		scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
		mainPanel().add(scrollPane, BorderLayout.CENTER);
	}
	
	@Override
	protected void setTitle() {}
	
	private JButton getButtonDefine(){
		if(btnDefine == null){
			btnDefine = new JButton("Define...");
			btnDefine.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent e) {
					List definedStrings = null;
					try {
						definedStrings = StringListDefinitionDialog.showDialog(DefineGenerateDialog.this, "Define " + getTitle());
					} catch (Exception e1) {
						JOptionPane.showMessageDialog(DefineGenerateDialog.this, "Cannot launch string list definition dialog.
Reason: " + e1.getMessage() + "", "Internal Exception", JOptionPane.ERROR_MESSAGE); } if(definedStrings != null){ stringListModel.clear(); for(String string: definedStrings){ stringListModel.addElement(string); } } } }); } return btnDefine; } private JButton getButtonGenerate(){ if(btnGenerate == null){ btnGenerate = new JButton("Generate..."); btnGenerate.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { List generatedStrings = null; try { generatedStrings = StringListGeneratorDialog.showDialog(DefineGenerateDialog.this, "Generate " + getTitle()); } catch (Exception e1) { JOptionPane.showMessageDialog(DefineGenerateDialog.this, "Cannot launch string list generator dialog.
Reason: " + e1.getMessage() + "", "Internal Exception", JOptionPane.ERROR_MESSAGE); } if(generatedStrings != null){ stringListModel.clear(); for(String string: generatedStrings){ stringListModel.addElement(string); } } } }); } return btnGenerate; } @Override protected void okProcedure() { if(!stringListModel.isEmpty()){ if(getDialogObject() == null) setDialogObject(new ArrayList()); for(int i=0; i showDialog(Window owner, String title) throws Exception{ DefineGenerateDialog activityDialog = new DefineGenerateDialog(owner, title); activityDialog.setUpGUI(); return activityDialog.getDialogObject(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy