56 Commits
Author SHA1 Message Date
Yorick 604fc9491a Woo 2015-02-26 11:05:29 +00:00
Yorick 9ff8c50309 Removed more unecessary files 2015-02-25 22:18:32 +00:00
Yorick 53195bfc7f Removed unnecessary files, and ready to implement 2015-02-25 22:16:55 +00:00
Yorick fb224081cc scaling to Endtime added 2015-02-25 13:15:23 +00:00
Yorick 21d17eadd2 Improved look of Timeline 2015-02-25 11:55:23 +00:00
Yorick d769129415 Dragging to change time in Stage possible 2015-02-24 23:54:50 +00:00
Yorick 285de27ba9 Merge branch 'master' of https://github.com/ProjectgroepA4/FestivalPlanner into yorick 2015-02-24 22:51:13 +00:00
Yorick 0ce2e7e6e9 Ording by start time 2015-02-24 21:53:22 +00:00
xrgman 2a10e0846d Update README.md 2015-02-24 22:22:22 +01:00
xrgman 0e5a2ccb61 Update README.md 2015-02-24 22:22:02 +01:00
Wesley 692e63f25c Updated the table with the filter buttons
there is a sprites folder, add it to the root of the project
2015-02-24 22:19:19 +01:00
Yorick ddd9435e4f Initial code timeline 2015-02-24 21:10:31 +00:00
kennyboy55 2e4e763ef7 Added testing method. Default Events will now be added. 2015-02-24 20:13:04 +01:00
kennyboy55 3dafa12ba8 Cleaned up code and added full date support 2015-02-24 19:56:25 +01:00
kennyboy55 a15ecc78c0 .jar voor DataUtils 2015-02-24 17:06:30 +01:00
kennyboy55 d0b6bcdd74 Create README.md 2015-02-24 17:03:24 +01:00
kennyboy55 29063703f6 Update Window.java 2015-02-24 17:01:00 +01:00
kennyboy55 4fe2761ab1 Update and rename Stage to Stage.java 2015-02-24 17:00:42 +01:00
kennyboy55 46be84245b Update PanelTable.java 2015-02-24 17:00:11 +01:00
kennyboy55 755941598e Delete PanelDate.java 2015-02-24 16:59:56 +01:00
kennyboy55 54fe904cad Update Panel.java 2015-02-24 16:59:40 +01:00
kennyboy55 b530a47a95 Update MenuBar.java 2015-02-24 16:59:19 +01:00
kennyboy55 dc4a87a4b3 Update and rename Event to Event.java 2015-02-24 16:58:44 +01:00
kennyboy55 8f5ef939f6 Update and rename Artist to Artist.java 2015-02-24 16:57:43 +01:00
kennyboy55 e2b140f780 Update and rename Agenda to Agenda.java 2015-02-24 16:57:20 +01:00
kennyboy55 302703f6ea Create Window.java 2015-02-24 13:37:55 +01:00
kennyboy55 7fcab5a2a6 Create SaveLoad.java 2015-02-24 13:37:37 +01:00
kennyboy55 3764de4a8f Create PanelTable.java 2015-02-24 13:37:24 +01:00
kennyboy55 8d4ffa48f1 Create PanelDate.java 2015-02-24 13:37:05 +01:00
kennyboy55 70ac0560b1 Create Panel.java 2015-02-24 13:36:48 +01:00
kennyboy55 a35af42dcf Create MenuBar.java 2015-02-24 13:36:34 +01:00
kennyboy55 46829eff10 Create Main.java 2015-02-24 13:36:14 +01:00
kennyboy55 73493d1faa Create ContentTable.java 2015-02-24 13:35:44 +01:00
kennyboy55 7ab04656b6 Delete GUI 2015-02-24 13:35:01 +01:00
kennyboy55 68c7392f2d Delete testmethode 2015-02-24 13:34:52 +01:00
kennyboy55 b566007b77 Merge pull request #1 from ProjectgroepA4/guus
Guus
2015-02-24 13:34:27 +01:00
guusvdongen a1520cf55c Delete Data.java 2015-02-13 17:38:40 +01:00
guusvdongen 1ed16ab22f Delete Panel.java 2015-02-13 17:38:35 +01:00
guusvdongen b5dbb8e058 Delete Stage.java 2015-02-13 17:38:30 +01:00
guusvdongen ea3d16c533 Delete README.md 2015-02-13 17:38:23 +01:00
guusvdongen f69ac37ea8 Delete Artist.java 2015-02-13 17:38:09 +01:00
guusvdongen d065860c4b Delete Event.java 2015-02-13 17:37:53 +01:00
guusvdongen 4e6abc1551 Rename test to testmethode 2015-02-13 17:37:27 +01:00
guusvdongen 6d6c5cd153 Create test 2015-02-13 17:36:49 +01:00
guusvdongen 63e6138e83 Create GUI 2015-02-13 17:26:13 +01:00
guusvdongen a0cdeb1794 Create Agenda 2015-02-13 17:25:34 +01:00
guusvdongen c10341c403 Stage 2015-02-13 17:24:51 +01:00
guusvdongen 0e78c56ad7 Event 2015-02-13 17:24:11 +01:00
guusvdongen c232d6a01c Create Artist 2015-02-13 17:23:07 +01:00
kennyboy55 451ae58a77 Update README.md 2015-02-10 14:27:26 +01:00
kennyboy55 4e81a4aa30 Updated Taakverdeling 2015-02-10 14:27:05 +01:00
kennyboy55 ff5daf1da8 Update README.md 2015-02-10 14:24:08 +01:00
kennyboy55 26d0fa1ff3 Update README.md 2015-02-10 14:22:32 +01:00
kennyboy55 fc0539c6ab Updated to new standard 2015-02-10 14:22:02 +01:00
kennyboy55 91f113e8e3 Added taakverdeling 2015-02-10 14:19:24 +01:00
kennyboy55 c27d44a559 Added Interface
Implement this interface when you create your panel. It ensures that
everything can be showed in the main window.
2015-02-10 14:14:38 +01:00
15 changed files with 611 additions and 465 deletions
+16 -17
View File
@@ -1,28 +1,27 @@
public class Artist { import javax.swing.ImageIcon;
private String name;
public class Artist
{
private String genre; private String genre;
private String image; private String name;
private String description; private String description;
private ImageIcon image;
private int id;
public Artist(String genre, String name, String description, ImageIcon image, int id)
public Artist(String name, String genre, String image, String description) { {
this.setName(name);
this.genre = genre; this.genre = genre;
this.image = image;
this.description = description;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name; this.name = name;
this.description = description;
this.image = image;
this.id = id;
} }
public int getID()
{
return id;
}
} }
-42
View File
@@ -1,42 +0,0 @@
import java.awt.Graphics;
import javax.swing.table.AbstractTableModel;
/**
* This class is used to make a temporary abstracttableModel with selected data so later it can be passed to the JTable so it refreshes.
* @author Wesley
* @version 1.0
*/
public class ContentTable extends AbstractTableModel {
private static final long serialVersionUID = 1L;
private Object[][] data;
private String[] columnNames;
public ContentTable(Object[][] data,String[] columnNames) {
this.data = data;
this.columnNames = columnNames;
}
@Override
public int getColumnCount() {
return columnNames.length;
}
@Override
public int getRowCount() {
return data.length;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return data[rowIndex][columnIndex];
}
@Override
public String getColumnName(int col) {
return columnNames[col];
}
}
-43
View File
@@ -1,43 +0,0 @@
import java.util.ArrayList;
public class Data {
private ArrayList<Stage> stages;
private ArrayList<Event> events;
private ArrayList<Artist> artists;
public Data() {
stages = new ArrayList<>();
events = new ArrayList<>();
artists = new ArrayList<>();
}
private void addStage(Stage stage) {
stages.add(stage);
}
private void addEvent(Event event) {
events.add(event);
}
private void addArtist(Artist artist) {
artists.add(artist);
}
public void makeArtist(String name, String genre, String image, String description) {
Artist artist = new Artist(name,genre,image,description);
addArtist(artist);
}
/*public void makeEvent(Artist artist, int startTime, int endTime, String description) {
Event event = new Event(artist, startTime, endTime,description);
addEvent(event);
}
public void makeStage(int expectedPopularity, String description) {
Stage stage = new Stage(expectedPopularity, description);
addStage(stage);
}*/
}
+19 -46
View File
@@ -1,61 +1,34 @@
public class Event {
private Artist artist; public class Event
{
private int startTime; private int startTime;
private int endTime; private int endTime;
private Artist artist;
private String description; private String description;
private Stage stage; private int id;
private String name;
public Event(String name, Stage stage, Artist artist, int startTime, int endTime, String description) { public Event(int startTime, int endTime, Artist artist, String description, int id)
if(artist != null) {
this.setArtist(artist);
else
this.setArtist(null);
this.startTime = startTime; this.startTime = startTime;
this.setEndTime(endTime);
this.description = description;
this.setName(name);
this.stage = stage;
}
public int getStartTime() {
return startTime;
}
public int getEndTime() {
return endTime;
}
public void setEndTime(int endTime) {
this.endTime = endTime; this.endTime = endTime;
this.artist = artist;
this.description = description;
this.id = id;
} }
public Stage getStage() { public Artist getArtist()
return stage; {
}
public void setStage(Stage stage) {
this.stage = stage;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Artist getArtist() {
return artist; return artist;
} }
public void setArtist(Artist artist) { public int getStartTime()
this.artist = artist; {
return startTime;
} }
public int getID()
{
return id + 10;
}
} }
+51
View File
@@ -0,0 +1,51 @@
import java.awt.BorderLayout;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class GUI extends JFrame
{
private Timeline timeline;
public GUI()
{
super("Gui");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
// JPanel contentPane = new JPanel(new BorderLayout());
// this.setContentPane(contentPane);
// this.setSize(600, 600);
// this.setVisible(true);
// System.out.println(contentPane.getWidth());
// timeline = new Timeline(contentPane);
// contentPane.add(timeline,BorderLayout.CENTER);
// contentPane.add(timeline.createWestPanel(), BorderLayout.WEST);
// timeline.refresh();
TimelinePanel panel = new TimelinePanel();
this.setContentPane(panel);
this.setSize(600, 600);
this.setVisible(true);
this.getRootPane().addComponentListener(new ComponentAdapter()
{
public void componentResized(ComponentEvent e) {
panel.refresh();
}
});
}
public static void main(String[] args)
{
new GUI();
}
}
-24
View File
@@ -1,24 +0,0 @@
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class IO {
private ObjectInputStream objectInput;
private ObjectOutputStream objectOutput;
public IO(File file) throws IOException {
objectInput = new ObjectInputStream(new BufferedInputStream(new FileInputStream(file)));
objectOutput = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(file)));
}
public void saveObject(Object o) throws IOException {
objectOutput.writeObject(o);
}
}
-4
View File
@@ -1,4 +0,0 @@
public class Preformance {
}
+6
View File
@@ -0,0 +1,6 @@
# BELANGRIJK
De .jar file moet als externe Library toegevoegd worden.
De sprites folder moet in de root van het project.
BRANCH VAN YORICK
Ja, codemess please.
+45 -16
View File
@@ -1,28 +1,57 @@
import java.util.ArrayList; import java.util.ArrayList;
public class Stage {
private ArrayList<Event> events; public class Stage
private String name; {
private String description; private ArrayList<Event> performances;
private int expectedPopularity; private int expectedPopularity;
private String description;
private int length;
private int startTime,endTime;
public Stage(String name, int expectedPopularity, String description) { public Stage(ArrayList<Event> performances, int expectedPopularity, String description, int startTime, int endTime)
events = new ArrayList<>(); {
this.setName(name); this.performances = performances;
this.expectedPopularity = expectedPopularity; this.expectedPopularity = expectedPopularity;
this.description = description; this.description = description;
this.startTime = startTime;
this.endTime = endTime;
this.length = endTime - startTime;
} }
public void addEvent(Event event) { public void setStartTime(int startTime)
events.add(event); {
this.startTime = startTime;
} }
public String getName() { public void setEndTime(int endTime)
return name; {
this.endTime = endTime;
} }
public void setName(String name) { public ArrayList<Event> getPerformances()
this.name = name; {
} return performances;
}
// public int getID()
// {
// return id + 100;
// }
public int getLength()
{
return length;
}
public int getStartTime()
{
return startTime;
}
public int getEndTime()
{
return endTime;
}
} }
+90
View File
@@ -0,0 +1,90 @@
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.LayoutManager;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class StagePanel extends JPanel
{
private BufferedImage image;
private int width, height, posX;
private Stage stage;
public StagePanel(int width, int height, int posX, Stage stage)
{
this.width = width;
this.height = height;
this.posX = posX;
this.stage = stage;
image = new BufferedImage(this.width, this.height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = image.createGraphics();
g2.setColor(Color.blue);
g2.fillRect(0, 0, image.getWidth(), image.getHeight());
}
public void paint(Graphics g)
{
super.paint(g);
((Graphics2D)g).drawImage(image, this.posX, 0, this);
}
public StagePanel(LayoutManager arg0)
{
super(arg0);
}
public StagePanel(boolean arg0)
{
super(arg0);
}
public void update(int posx)
{
this.posX = posx;
repaint();
}
public StagePanel(LayoutManager arg0, boolean arg1)
{
super(arg0, arg1);
}
public int getPosX()
{
return this.posX;
}
public void setLength(int length)
{
this.width = length;
}
public void setStageStartTime(int startTime)
{
stage.setStartTime(startTime);
}
public void setStageEndTime(int endTime)
{
stage.setEndTime(endTime);
}
public int getStageStartTime()
{
return stage.getStartTime();
}
public int getImageWidth()
{
return this.width;
}
}
-185
View File
@@ -1,185 +0,0 @@
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
/**
* Constructs a JTable in a ScrolPane.
* @author Wesley
* @version 1.0
*/
public class TabelPanel extends JPanel {
private static final long serialVersionUID = 1L;
private JScrollPane scrollPane;
private Object[][] data;
private String[] columnNames = {"Stage",
"Event",
"Artist",
"Begin Time",
"End Time"};
private ArrayList<Event> events;
private ArrayList<Event> fullEvents;
private JTable table;
private JTable selectedCell;
/**
* Constructor makes the table and adds it to a scrollPane.
* @param events
*/
public TabelPanel(ArrayList<Event> events) {
this.events = events;
fullEvents = new ArrayList<>();
compileData(columnNames.length,events.size());
table= new JTable();
AbstractTableModel tableModel = new ContentTable(data,columnNames);
table.setModel(tableModel);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setAutoCreateRowSorter(true);
table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) { if(e.getClickCount() > 1 ) cellClicked(e); else selectedCell = (JTable) e.getSource(); }
});
scrollPane = new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setBorder(null);
add(scrollPane);
}
/**
* Sets the size of the scrollPane, in which the table is placed to fill out its container panel (not sure if this is needed?)
*/
public void paintComponent(Graphics g) {
scrollPane.setPreferredSize(new Dimension(getWidth(),getHeight()));
}
/**
* Gets the data from the events arrayList and makes a 2D-array of it.
* @param columnes
* @param rows
*/
public void compileData(int columnes, int rows) {
data = new Object[rows][columnes];
for(int x = 0; x < rows; x++) {
Object[] tempData = new Object[columnes];
tempData[0] = events.get(x).getStage().getName();
tempData[1] = events.get(x).getName();
tempData[2] = events.get(x).getArtist().getName();
tempData[3] = new Integer(events.get(x).getStartTime());
tempData[4] = new Integer(events.get(x).getEndTime());
data[x] = tempData;
}
}
/**
* Refreshes the content on the table with a fresh ArrayList of events, useful when things are removed and added and should be called every time you update the list.
* @param events
*/
public void refreshContent(ArrayList<Event> events, boolean newList) {
this.events = events;
if(newList)
this.fullEvents = events;
compileData(columnNames.length,events.size());
AbstractTableModel tableModel = new ContentTable(data,columnNames);
table.setModel(tableModel);
}
/**
* Method for the action listener when a cell is clicked, opens dialog of the clicked cell.
* @param e
*/
private void cellClicked(MouseEvent e) {
JTable target = (JTable) e.getSource();
switch(target.getSelectedColumn()) {
case 0:
//A dialog for podia?
break;
case 1:
openEventDialog(target.getSelectedRow());
break;
case 2:
openArtistDialog(target.getSelectedRow());
break;
}
}
/**
* Opens a dialog with information of the selected event.
* @param row
*/
private void openEventDialog(int row) {
JFrame frame = new JFrame();
Event event = events.get(row);
//the dialog
frame.pack();
frame.setSize(300, 200);
frame.setLocationRelativeTo(this);
frame.setVisible(true);
}
/**
* Opens a dialog with information of the selected artist
* @param row
*/
private void openArtistDialog(int row) {
JFrame frame = new JFrame();
Artist artsit = events.get(row).getArtist();
//the dialog
frame.pack();
frame.setSize(300, 200);
frame.setLocationRelativeTo(this);
frame.setVisible(true);
}
/**
* Filter method which filters on the currently selected cell.
* Needs to be under a button action, also a reset button is needed so list can be restored.
*/
public void filter() {
if(selectedCell != null) {
if(fullEvents.isEmpty()) {
fullEvents = events;
}
ArrayList<Event> filteredList = new ArrayList<>();
switch(selectedCell.getSelectedColumn()) {
case 0:
for(Event event : fullEvents) {
if(event.getStage().equals(events.get(selectedCell.getSelectedRow()).getStage())) {
filteredList.add(event);
}
}
break;
case 1:
for(Event event : fullEvents) {
if(event.equals(events.get(selectedCell.getSelectedRow()))) {
filteredList.add(event);
}
}
break;
case 2:
for(Event event : fullEvents) {
if(event.getArtist().equals(events.get(selectedCell.getSelectedRow()).getArtist())) {
filteredList.add(event);
}
}
break;
}
refreshContent(filteredList,false);
selectedCell = null;
}
else {
JOptionPane.showMessageDialog(this, "Select a cell with the value u want to filter on","No cell selected",JOptionPane.WARNING_MESSAGE);
}
}
}
+358
View File
@@ -0,0 +1,358 @@
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.ComponentListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.MouseMotionListener;
import java.util.ArrayList;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
@SuppressWarnings({ "serial" })
public class Timeline extends JPanel
{
private ArrayList<Stage> stages = new ArrayList<Stage>();
private JPanel frame;
// Geef dit object je JFrame mee, en zet in je JFrame de volgende code:
// this.setContentPane(timeline.getTimeline());
// this.getRootPane().addComponentListener(new ComponentAdapter()
// {
// public void componentResized(ComponentEvent e) {
// timeline.refresh();
// }
// });
public Timeline(JPanel frame)
{
super();
this.frame = frame;
genStages();
this.setSize(frame.getWidth(), frame.getHeight());
refresh();
}
public void refresh()
{
this.removeAll();
// createWestPanel();
createMainPanel();
this.revalidate();
}
private void createMainPanel()
{
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new BoxLayout(mainPanel, BoxLayout.Y_AXIS));
Container topContainer = createTopPanel();
Dimension dim = new Dimension(this.getWidth(), 60);
topContainer.setMaximumSize(dim);
mainPanel.add(topContainer);
Dimension centerDim = new Dimension(this.getWidth(), frame.getHeight());
// Container centerContainer = createCenterPanel();
JPanel centerContainer = createCenterPanel();
centerContainer.setPreferredSize(centerDim);
centerContainer.setMaximumSize(centerDim);
System.out.println(centerDim);
mainPanel.add(centerContainer);
this.add(mainPanel, BorderLayout.CENTER);
}
private JPanel createCenterPanel()
{
JPanel centerPanel = new JPanel();
centerPanel.setBackground(Color.lightGray);
centerPanel.setLayout(new BoxLayout(centerPanel, BoxLayout.Y_AXIS));
centerPanel.add(Box.createRigidArea(new Dimension(0, 30)));
for(Stage stage : stages)
{
StagePanel stagepanel = new StagePanel(calcLengthOfStage(stage.getLength()), 30, calcPositionOfStage(stage.getStartTime()), stage);
Container content = stagepanel;
content.setMaximumSize(new Dimension(this.getWidth(),30));
content.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
resizeTimeline(stagepanel);
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
}
});
content.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseMoved(MouseEvent e) {
}
@Override
public void mouseDragged(MouseEvent e) {
stagepanel.update(e.getX() - stagepanel.getImageWidth() / 2);
}
});
centerPanel.add(content);
centerPanel.add(Box.createRigidArea(new Dimension(0,15)));
}
// this.add(centerPanel, BorderLayout.CENTER);
return centerPanel;
}
public void resizeTimeline(StagePanel stagepanel)
{
int min = findMinMax(1);
int max = findMinMax(2);
// System.out.println(stagepanel.getStageStartTime());
// System.out.println(calcStartTimeOfStagePanel(stagepanel.getPosX()));
stagepanel.setStageStartTime(calcStartTimeOfStagePanel(stagepanel.getPosX()));
stagepanel.setStageEndTime(calcEndTimeOfStagePanel(stagepanel.getPosX(), stagepanel.getImageWidth()));
// stagepanel.setLength(calcLengthOfStagePanel(stagepanel.getImageWidth()));
// System.out.println(calcLengthOfStagePanel(stagepanel.getImageWidth()));
refresh();
}
public int calcLengthOfStage(int length)
{
double lengthOfStage = 0;
int min = findMinMax(1);
int max = findMinMax(2);
double frameWidth = this.getWidth();
double pixelsPerLength = frameWidth / (max - min);
lengthOfStage = pixelsPerLength * (double)length;
// System.out.println((int)lengthOfStage);
return (int)lengthOfStage;
}
public int calcLengthOfStagePanel(int length)
{
double lengthOfStagePanel = 0;
int min = findMinMax(1);
int max = findMinMax(2);
// System.out.println(length);
double frameWidth = this.getWidth();
double pixelsPerLength = frameWidth / (max - min);
// System.out.println(pixelsPerLength);
lengthOfStagePanel = (double)length / pixelsPerLength;
// System.out.println(lengthOfStagePanel);
return (int)lengthOfStagePanel;
}
public int calcPositionOfStage(int startTime)
{
int posx = 0;
int min = findMinMax(1);
int max = findMinMax(2);
posx = startTime - min;
posx = posx * this.getWidth() / (max-min);
// System.out.println("Frame: " + this.getWidth());
// System.out.println("startTime: " + startTime);
// System.out.println("Max: " + max + " min: " + min);
// System.out.println("Posx: " + posx);
return posx;
}
public int calcStartTimeOfStagePanel(int posx)
{
int min = findMinMax(1);
int max = findMinMax(2);
// double startTime = (posx / (this.getWidth() / (max - min )) ) + min;
//Omdat het anders onnodig afgerond wordt, alles apart in doubles.
double minmax = max-min;
double bottom = this.getWidth() / minmax;
double all = posx / bottom;
double startTime = all + min;
// System.out.println("starttime----------------");
// System.out.println("Frame: " + this.getWidth());
// System.out.println("startTime: " + startTime);
// System.out.println("Max: " + max + " min: " + min);
// System.out.println("Posx: " + posx);
return (int)startTime;
}
public int calcEndTimeOfStagePanel(int posx, int imageWidth)
{
int min = findMinMax(1);
int max = findMinMax(2);
//Omdat het anders onnodig afgerond wordt, alles apart in doubles.
double minmax = max-min;
double bottom = this.getWidth() / minmax;
double all = posx / bottom;
double endTime = all + min + calcLengthOfStagePanel(imageWidth);
// System.out.println(calcLengthOfStagePanel(imageWidth));
// System.out.println(endTime);
return (int)endTime;
}
public int findMinMax(int i)
{
// Event oldevent = new Event(0, 0, null, "Base", 0);
// ArrayList<Event> oldevents = new ArrayList<Event>();
// oldevents.add(oldevent);
// Stage oldstage = new Stage(oldevents,0,null, 0, 0);
ArrayList<Stage> stagescopy = (ArrayList<Stage>) stages.clone();
Integer earliestStartTime = null;
Integer lastEndTime = null;
for(Stage stage : stagescopy)
{
if(i == 1)
{
if(earliestStartTime == null)
{
earliestStartTime = stage.getStartTime();
}
else
{
if(stage.getStartTime() < earliestStartTime)
{
earliestStartTime = stage.getStartTime();
}
}
}
else if( i == 2)
{
if(lastEndTime == null)
{
lastEndTime = stage.getEndTime();
}
else
{
if(stage.getEndTime() > lastEndTime)
{
lastEndTime = stage.getEndTime();
}
}
}
}
if(i == 1)
{
return earliestStartTime;
}
else if(i == 2)
{
return lastEndTime;
}
else
{
System.out.println("Return -1");
return -1;
}
}
private JPanel createTopPanel()
{
JPanel topPane = new JPanel();
topPane.setLayout(new BoxLayout(topPane, BoxLayout.Y_AXIS));
JPanel topPanel = new JPanel(new FlowLayout());
for(int i = 0; i <= this.getWidth() / 10; i++)
{
ImageIcon topImageIcon = new ImageIcon("src/test2.png");
JLabel topImage = new JLabel(topImageIcon);
topPanel.add(topImage);
}
topPane.add(Box.createRigidArea(new Dimension(0,20)));
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
panel.add(Box.createRigidArea(new Dimension(50, 10)));
panel.add(new JLabel(Integer.toString(findMinMax(1))));
panel.add(Box.createHorizontalGlue());
panel.add(new JLabel(Integer.toString(findMinMax(2))));
panel.add(Box.createRigidArea(new Dimension(50, 10)));
topPane.add(panel);
topPane.add(topPanel);
// this.add(topPane, BorderLayout.NORTH);
return topPane;
}
public JPanel createWestPanel()
{
JPanel westPanel = new JPanel();
westPanel.setLayout(new BoxLayout(westPanel, BoxLayout.Y_AXIS));
westPanel.add(Box.createRigidArea(new Dimension(0, 100)));
for(int i = 0; i < stages.size(); i++)
{
JLabel stageText = new JLabel("Stage: " + (i+1) + " ");
westPanel.add(stageText);
westPanel.add(Box.createRigidArea(new Dimension(0, 30 )));
}
// this.add(westPanel, BorderLayout.WEST);
return westPanel;
}
private void genStages()
{
ImageIcon image = new ImageIcon();
Artist artist2 = new Artist("Henk", "paul2", "kaas", image, 2);
Artist artist1 = new Artist("Kaas", "Paul", "Lala", image, 1);
Event event2 = new Event(1900, 2000, artist2, "hi2", 2);
Event event1 = new Event(600, 1800, artist1, "hi", 1);
ArrayList<Event> performances = new ArrayList<Event>();
performances.add(event1);
performances.add(event2);
Stage stage1 = new Stage(performances, 100, null, 1800, 2100);
stages.add(stage1);
Stage stage2 = new Stage(performances, 100, null, 1700, 1900);
Stage stage3 = new Stage(performances, 100, null, 1600, 1800);
Stage stage4 = new Stage(performances, 100, null, 1600, 2100);
stages.add(stage3);
stages.add(stage2);
// stages.add(stage4);
}
public JPanel getTimeline()
{
return this;
}
}
+26
View File
@@ -0,0 +1,26 @@
import java.awt.BorderLayout;
import javax.swing.JPanel;
public class TimelinePanel extends JPanel {
private Timeline timeline;
public TimelinePanel()
{
super(new BorderLayout());
this.setSize(600, 600);
this.setVisible(true);
timeline = new Timeline(this);
this.add(timeline,BorderLayout.CENTER);
this.add(timeline.createWestPanel(), BorderLayout.WEST);
}
public void refresh()
{
timeline.refresh();
}
}
-88
View File
@@ -1,88 +0,0 @@
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class frame extends JFrame {
private static final long serialVersionUID = 1L;
private ArrayList<Event> events;
private TabelPanel paneel;
public static void main(String args[]) {
frame frameee = new frame();
}
public frame() {
fillArray();
setDefaultCloseOperation(EXIT_ON_CLOSE);
paneel = new TabelPanel(events);
getContentPane().add(paneel);
JButton button;
JPanel botPanel = new JPanel();
button = new JButton("Filta");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { paneel.filter(); }
});
botPanel.add(button);
button = new JButton("Reset filta");
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { paneel.refreshContent(events,true); }
});
botPanel.add(button);
add(botPanel,BorderLayout.SOUTH);
pack();
setSize(800,600);
setVisible(true);
}
private void fillArray() {
Artist artist1 = new Artist("John","","","");
Artist artist2 = new Artist("Jan","","","");
Artist artist3 = new Artist("Jaap","","","");
Artist artist4 = new Artist("Banaan","","","");
Artist artist5 = new Artist("Josti","","","");
Stage stage1 = new Stage("podia1",1,"");
Stage stage2 = new Stage("podia2",1,"");
Stage stage3 = new Stage("podia3",1,"");
Stage stage4 = new Stage("podia4",1,"");
Stage stage5 = new Stage("podia5",1,"");
events = new ArrayList<>();
events.add(new Event("event1",stage1,artist1,1605,1640,""));
events.add(new Event("event2",stage1,artist2,1605,1640,""));
events.add(new Event("event3",stage3,artist3,1605,1640,""));
events.add(new Event("event4",stage1,artist4,1605,1640,""));
events.add(new Event("event5",stage5,artist5,1605,1640,""));
}
private void fillArray2() {
Artist artist1 = new Artist("2","","","");
Artist artist2 = new Artist("2","","","");
Artist artist3 = new Artist("2","","","");
Artist artist4 = new Artist("2","","","");
Artist artist5 = new Artist("2","","","");
Stage stage1 = new Stage("podia1",1,"");
Stage stage2 = new Stage("podia2",1,"");
Stage stage3 = new Stage("podia3",1,"");
Stage stage4 = new Stage("podia4",1,"");
Stage stage5 = new Stage("podia5",1,"");
events = new ArrayList<>();
events.add(new Event("event1",stage1,artist1,1605,1640,""));
events.add(new Event("event2",stage1,artist2,1605,1640,""));
events.add(new Event("event3",stage3,artist3,1605,1640,""));
events.add(new Event("event4",stage4,artist4,1605,1640,""));
events.add(new Event("event5",stage1,artist5,1605,1640,""));
}
public void refresh() {
fillArray2();
paneel.refreshContent(events,true);
}
}
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 155 B