https://hal.archives-ouvertes.fr/hal-02404862
Raw File
Tip revision: 759bd8995e51c4e40aa72fd5657d5e6e04c6da89 authored by Software Heritage on 04 February 2020, 13:44:27 UTC
hal: Deposit 405 in collection hal
Tip revision: 759bd89
DialogPanelChoixForum.java
package vue.dialog;

import java.awt.Component;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.List;
import java.util.ResourceBundle;
import java.util.TreeMap;

import javax.swing.BoxLayout;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;

import modeles.ForumModel;

public class DialogPanelChoixForum extends JPanel {

	private static final long serialVersionUID = 1L;
	private String forumSelected, nomForumEnCours;
	private ResourceBundle bundleOperationsListe;
	private List<ForumModel> listForums;
	private JCheckBox chkUpdate = new JCheckBox();

	public DialogPanelChoixForum(ResourceBundle bundleOperationsListe, List<ForumModel> listForums, String nomForumEnCours) {
		this.bundleOperationsListe = bundleOperationsListe;
		this.listForums = listForums;
		this.nomForumEnCours = nomForumEnCours;
		createGui();
	}

	public void createGui() {
		JPanel panelLabel = new JPanel();
		panelLabel.setLayout(new FlowLayout(FlowLayout.LEFT));
		panelLabel.setOpaque(true);
		panelLabel.setMinimumSize(new Dimension(400, 30));
		JLabel labChoixForum = new JLabel(bundleOperationsListe.getString("txt_ChoixForum") + " : ");
		panelLabel.add(labChoixForum);

		JPanel panelRadios = new JPanel();
		panelRadios.setLayout(new BoxLayout(panelRadios, BoxLayout.Y_AXIS));
		panelRadios.setOpaque(true);
		panelRadios.setAlignmentY(Component.LEFT_ALIGNMENT);

		ButtonGroup groupB = new ButtonGroup();

		for (final ForumModel forum : listForums) {
			final JRadioButton rb = new JRadioButton(forum.getNom());
			rb.addItemListener(new ItemListener() {

				@Override
				public void itemStateChanged(ItemEvent ie) {
					if (ie.getStateChange() == ItemEvent.SELECTED)
						if (forum.getNom().equals(nomForumEnCours)) {
							forumSelected = rb.getText();
							chkUpdate.setSelected(true);
						} else {
							forumSelected = rb.getText();
							chkUpdate.setSelected(false);
						}
					else
						chkUpdate.setSelected(false);
				}
			});
			groupB.add(rb);
			JPanel panelRadio = new JPanel();
			panelRadio.setLayout(new FlowLayout(FlowLayout.LEFT));
			panelRadio.setOpaque(true);
			JLabel labNbreTopics = new JLabel("(" + forum.getNbreTopicsEnviron() + " " + bundleOperationsListe.getString("txt_TopicsEnviron") + ")");
			panelRadio.add(rb);
			if (forum.getNom().equals(nomForumEnCours)) {
				rb.setSelected(true);
				chkUpdate.setText(bundleOperationsListe.getString("txt_UpdateForum"));				
				chkUpdate.setSelected(true);
				panelRadio.add(chkUpdate);
			} else
				panelRadio.add(labNbreTopics);

			panelRadios.add(panelRadio);
		}

		add(panelLabel);
		JScrollPane scrollRadios = new JScrollPane(panelRadios);
		scrollRadios.setMinimumSize(new Dimension(400, 200));
		scrollRadios.setMaximumSize(new Dimension(400, 200));
		scrollRadios.setPreferredSize(new Dimension(400, 200));
		add(scrollRadios);

		setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
		setOpaque(true);
		setAlignmentY(Component.LEFT_ALIGNMENT);
		setMinimumSize(new Dimension(400, 230));
		setMaximumSize(new Dimension(400, 230));
		setPreferredSize(new Dimension(400, 230));
	}

	public String getForumSelected() {
		return forumSelected;
	}

	public boolean chkUpdateSelected() {
		return chkUpdate.isSelected();
	}

}
back to top