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

org.yaoqiang.bpmn.editor.dialog.JSONCheckboxPanel Maven / Gradle / Ivy

package org.yaoqiang.bpmn.editor.dialog;

import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.JCheckBox;
import javax.swing.JLabel;

import org.json.JSONException;
import org.json.JSONObject;
import org.yaoqiang.dialog.PanelContainer;
import org.yaoqiang.util.Resources;


/**
 * JSONCheckboxPanel
 * 
 * @author Shi Yaoqiang([email protected])
 */
public class JSONCheckboxPanel extends JSONPanel {

	private static final long serialVersionUID = 1L;

	protected String key;

	protected JCheckBox jcb;

	public JSONCheckboxPanel(PanelContainer pc, JSONObject owner) {
		this(pc, owner, null, true);
	}

	public JSONCheckboxPanel(final PanelContainer pc, JSONObject owner, String key, boolean isEnabled) {
		super(pc, owner);
		this.setLayout(new BorderLayout());
		this.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
		this.key = key;

		JLabel jl = new JLabel(" "+ Resources.get(key));

		jcb = new JCheckBox();
		jcb.setBorder(BorderFactory.createEmptyBorder());
		boolean value = owner.optBoolean(key);
		jcb.setSelected(value);
		jcb.setEnabled(isEnabled);
		jcb.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent e) {
				pc.panelChanged();
			}
		});

		this.add(jcb, BorderLayout.WEST);
		this.add(Box.createHorizontalGlue(), BorderLayout.EAST);
		this.add(jl, BorderLayout.CENTER);
	}

	public JCheckBox getCheckBox() {
		return jcb;
	}
	
	public boolean isSelected() {
		return jcb.isSelected();
	}

	public void setSelected(boolean b) {
		jcb.setSelected(b);
	}

	public void addActionListener(ActionListener l) {
		jcb.addActionListener(l);
	}
	
	public void saveObjects() {
		try {
			if (jcb.isEnabled()) {
				((JSONObject)owner).put(this.key, jcb.isSelected());
			} else {
				((JSONObject)owner).put(this.key, (Object) null);
			}
		} catch (JSONException e) {
			e.printStackTrace();
		}
	}

	public void setEnabled(boolean b) {
		super.setEnabled(b);
		jcb.setEnabled(b);
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy