/*
* Copyright (c) 2008-2014 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.installer.widget;
import charva.awt.GridBagConstraints;
import charva.awt.GridBagLayout;
import charvax.swing.JList;
import charvax.swing.JPanel;
import charvax.swing.JScrollPane;
import charvax.swing.ListSelectionModel;
import charvax.swing.border.TitledBorder;
import charvax.swing.event.ListSelectionListener;
/**
* Class implements list selection using a scroll panel.
*
*/
public class SelectListPanel extends JPanel {
private JList jList;
private String label;
private String[] lists;
private InstallerWizard root;
public SelectListPanel(InstallerWizard root, String label, String[] lists) {
this.root = root;
this.label = label;
this.lists = lists;
initComponents();
}
private void initComponents() {
setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.anchor = GridBagConstraints.WEST;
c.gridx = 0;
c.gridy = 0;
jList = new JList(lists);
if (lists.length > 10) {
jList.setVisibleRowCount(10);
} else {
jList.setVisibleRowCount(lists.length);
}
int columnNum = 0;
for (String s : lists) {
if (s.length() > columnNum) {
columnNum = s.length();
}
}
if (columnNum > 20) {
columnNum = columnNum + 5;
} else {
columnNum = 25;
}
jList.setColumns(columnNum);
// only one selection allowed at a time
jList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JScrollPane scrollpane = new JScrollPane(jList);
TitledBorder viewportBorder = new TitledBorder(label);
scrollpane.setViewportBorder(viewportBorder);
add(scrollpane, c);
}
public void addListSelectionListener(
ListSelectionListener listSelectionListener) {
jList.addListSelectionListener(listSelectionListener);
}
public JList getList() {
return this.jList;
}
public InstallerWizard getRoot() {
return this.root;
}
}