Added new lists for viewing and selecting Artists and Stages

This commit is contained in:
2015-02-25 19:51:02 +01:00
parent c225c23d66
commit 9de7409bac
6 changed files with 146 additions and 4 deletions
+8
View File
@@ -42,6 +42,14 @@ public class Agenda implements Serializable {
{
return events;
}
public ArrayList<Artist> getArtists()
{
return artists;
}
public ArrayList<Stage> getStages()
{
return stages;
}
public void saveAgenda()
{
+5
View File
@@ -79,4 +79,9 @@ public class Artist implements Serializable{
{
this.background = background;
}
public String toString()
{
return name;
}
}
+25
View File
@@ -0,0 +1,25 @@
import javax.swing.AbstractListModel;
public class ContentList extends AbstractListModel {
private static final long serialVersionUID = 9110016552017561529L;
Object[] data;
public ContentList(Object[] data)
{
this.data = data;
}
@Override
public Object getElementAt(int arg0) {
return data[arg0];
}
@Override
public int getSize() {
return data.length;
}
}
+98
View File
@@ -0,0 +1,98 @@
import java.awt.Dimension;
import java.util.ArrayList;
import javax.swing.AbstractListModel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class PanelArtSta extends JPanel implements Panel{
private Agenda a;
JList artists;
JList stages;
Object[] dataArtist;
Object[] dataStage;
public PanelArtSta(Window w)
{
super();
a = w.getAgenda();
artists = new JList();
artists.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
artists.setLayoutOrientation(JList.VERTICAL_WRAP);
artists.setVisibleRowCount(-1);
artists.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting() == false) {
if (artists.getSelectedIndex() == -1) {
} else {
JOptionPane.showMessageDialog(null, "Artist Selected: " + a.getArtists().get(artists.getSelectedIndex()));
artists.clearSelection();
}
}
}
});
JScrollPane artistScroller = new JScrollPane(artists);
artistScroller.setPreferredSize(new Dimension(250, 80));
stages = new JList();
stages.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
stages.setLayoutOrientation(JList.VERTICAL_WRAP);
stages.setVisibleRowCount(-1);
stages.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
if (e.getValueIsAdjusting() == false) {
if (stages.getSelectedIndex() == -1) {
} else {
JOptionPane.showMessageDialog(null, "Stage Selected: " + a.getStages().get(stages.getSelectedIndex()));
stages.clearSelection();
}
}
}
});
JScrollPane stageScroller = new JScrollPane(stages);
stageScroller.setPreferredSize(new Dimension(250, 80));
add(artistScroller);
add(stageScroller);
}
public void compileData()
{
int artists = a.getArtists().size();
int stages = a.getStages().size();
dataArtist = new Object[artists];
dataStage = new Object[stages];
for(int i = 0; i < artists; i++)
{
dataArtist[i] = a.getArtists().get(i);
}
for(int i = 0; i < stages; i++)
{
dataStage[i] = a.getStages().get(i);
}
}
@Override
@SuppressWarnings({ "rawtypes", "unchecked" })
public void update(ArrayList<Event> event) {
compileData();
AbstractListModel artistsList = new ContentList(dataArtist);
AbstractListModel stagesList = new ContentList(dataStage);
artists.setModel(artistsList);
stages.setModel(stagesList);
}
}
+5
View File
@@ -32,4 +32,9 @@ public class Stage implements Serializable {
{
this.name = name;
}
public String toString()
{
return name;
}
}
+5 -4
View File
@@ -72,6 +72,9 @@ public class Window extends JFrame {
Panel tablePanel = new PanelTable();
panels.put("table", tablePanel);
Panel art_staPanel = new PanelArtSta(this);
panels.put("art_sta", art_staPanel);
//Main Panels
JPanel mainPanel = new JPanel(new BorderLayout());
centerPanel = new JPanel(new BorderLayout());
@@ -170,15 +173,13 @@ public class Window extends JFrame {
private static void changePanel()
{
if(centerPanel.getComponents().length > 0)
{
centerPanel.remove(0);
}
centerPanel.removeAll();
Panel p = panels.get(currentPanel);
p.update(getEvents());
JPanel p1 = (JPanel) p;
p1.setPreferredSize(centerPanel.getSize());
centerPanel.add(p1, BorderLayout.CENTER);
centerPanel.revalidate();
centerPanel.repaint();
p1.repaint();
}