1
0
Fork 0

Merge branch 'GUI' into 'master'

Gui

See merge request cannes-cpoa/projection-planning!1
This commit is contained in:
Ethanell 2021-01-05 14:11:03 +01:00
commit a986763c31
10 changed files with 592 additions and 21 deletions

1
config.json Normal file
View file

@ -0,0 +1 @@
{"host":"vps.flifloo.fr","password":"cannes","database":"cannes","user":"root"}

View file

@ -0,0 +1,110 @@
package GUI;
import javax.swing.*;
import javax.swing.event.MouseInputAdapter;
import javax.swing.table.TableColumnModel;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.util.Arrays;
public class Agenda extends JPanel {
private JPanel agendaPanel;
private String headers[];
private int totalDay;
private int currentPage;
public Agenda(JPanel agendaPanel, String headers[], int totalDay, int currentPage) {
this.agendaPanel = agendaPanel;
this.headers = headers;
this.totalDay = totalDay;
this.currentPage = currentPage;
this.agendaPanel.removeAll();
int totalPages[] = dayToPage(9);
if (this.currentPage >= totalPages.length) {
this.currentPage = totalPages.length - 1;
} else if (this.currentPage < 0) {
this.currentPage = 0;
}
JScrollPane scroll = constructAgenda(totalPages[this.currentPage]);
agendaPanel.add(scroll);
}
private int[] dayToPage(int totalDay) {
int day = totalDay;
int count = 0;
while (day >= 5) {
day = day-5;
count++;
}
int rest = totalDay - 5*count;
int totalPages = rest < 5 ? count+1:count;
int pages[] = new int[totalPages];
Arrays.fill(pages, 5);
if (rest < 5) pages[totalPages-1] = rest;
return pages;
}
private JScrollPane constructAgenda(int day) {
ListModel lm = new AbstractListModel() {
public int getSize() {
return headers.length;
}
public Object getElementAt(int index) {
return headers[index];
}
};
TableModel dm = new TableModel(day, currentPage, headers.length);
JTable table = new JTable(dm) {
@Override
public boolean getScrollableTracksViewportHeight() {
return true;
}
};
table.setCellSelectionEnabled(true);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setRowHeight(100);
table.addMouseListener(new MouseInputAdapter() {
@Override
public void mousePressed(MouseEvent mouseEvent) {
JTable table = (JTable) mouseEvent.getSource();
Point point = mouseEvent.getPoint();
int row = table.getSelectedRow();
int column = table.getSelectedColumn();
if (mouseEvent.getClickCount() == 2 && table.getSelectedRow() != -1) {
ProjectionHandler dialog;
if (table.getValueAt(row, column) == "") {
dialog = new ProjectionHandler(ProjectionType.ADD);
} else {
dialog = new ProjectionHandler(ProjectionType.EDIT);
}
dialog.pack();
dialog.setVisible(true);
}
}
});
TableColumnModel columnModel = table.getColumnModel();
int columnCount = columnModel.getColumnCount();
for (int i = 0; i < columnCount; i++) {
table.getColumnModel().getColumn(i).setPreferredWidth(200);
}
JList rowHeader = new JList(lm);
rowHeader.setFixedCellWidth(100);
rowHeader.setFixedCellHeight(100);
rowHeader.setCellRenderer(new RowHeaderRenderer(table));
JScrollPane scroll = new JScrollPane(table);
scroll.setRowHeaderView(rowHeader);
scroll.setBorder(BorderFactory.createEmptyBorder());
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
this.agendaPanel.setPreferredSize(new Dimension(this.agendaPanel.getWidth(), headers.length * 100 + 20));
return scroll;
}
public int getCurrentPage() {
return this.currentPage;
}
}

View file

@ -0,0 +1,5 @@
package GUI;
public enum CompetType {
LM, UCR, HC
}

View file

@ -1,45 +1,150 @@
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="GUI.GUI">
<grid id="27dc6" binding="mainPanel" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<grid id="27dc6" binding="mainPanel" layout-manager="GridLayoutManager" row-count="4" column-count="5" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<xy x="20" y="20" width="500" height="400"/>
<xy x="50" y="20" width="1325" height="348"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<toolbar id="c7ac7">
<grid id="6e52f" binding="agendaPanel" layout-manager="BorderLayout" hgap="0" vgap="0">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false">
<preferred-size width="-1" height="20"/>
</grid>
<grid row="1" column="0" row-span="1" col-span="5" vsize-policy="1" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<border type="empty">
<size top="0" left="50" bottom="0" right="0"/>
</border>
<children/>
</toolbar>
<grid id="7954c" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
</grid>
<hspacer id="82bd">
<constraints>
<grid row="0" column="3" row-span="1" col-span="2" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
</hspacer>
<grid id="5ab4e" binding="arrowPanel" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
<grid row="2" column="4" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<vspacer id="668e3">
<component id="ea5a" class="javax.swing.JButton" binding="previousButton">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
</constraints>
</vspacer>
<component id="17c84" class="javax.swing.JLabel">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="1" anchor="4" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<foreground color="-16777216"/>
<text value="Projection Planning"/>
<text value="←"/>
</properties>
</component>
<component id="ddc41" class="javax.swing.JButton" binding="nextButton">
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="1" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="→"/>
</properties>
</component>
</children>
</grid>
<vspacer id="b0c71">
<constraints>
<grid row="3" column="4" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
</constraints>
</vspacer>
<grid id="41fdc" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="0" column="0" row-span="1" col-span="3" vsize-policy="3" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<vspacer id="fbe38">
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
</constraints>
</vspacer>
<grid id="f1379" layout-manager="GridLayoutManager" row-count="2" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="1" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<grid id="b1c37" layout-manager="GridLayoutManager" row-count="1" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="25" left="50" bottom="0" right="0"/>
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="1" fill="1" indent="0" use-parent-layout="false">
<preferred-size width="284" height="61"/>
</grid>
</constraints>
<properties/>
<border type="none"/>
<children>
<component id="2dfdc" class="javax.swing.JButton" binding="LMButton" default-binding="true">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
<minimum-size width="75" height="-1"/>
</grid>
</constraints>
<properties>
<text value="LM"/>
</properties>
</component>
<component id="9869d" class="javax.swing.JButton" binding="HCButton" default-binding="true">
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
<minimum-size width="75" height="-1"/>
</grid>
</constraints>
<properties>
<text value="HC"/>
</properties>
</component>
<component id="bc004" class="javax.swing.JButton" binding="UCRButton" default-binding="true">
<constraints>
<grid row="0" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
<minimum-size width="75" height="-1"/>
</grid>
</constraints>
<properties>
<text value="UCR"/>
</properties>
</component>
</children>
</grid>
<hspacer id="975cc">
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false">
<preferred-size width="14" height="61"/>
</grid>
</constraints>
</hspacer>
<grid id="edbdc" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="50" bottom="0" right="0"/>
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<component id="f0690" class="javax.swing.JLabel">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<font size="22"/>
<text value="Agenda"/>
</properties>
</component>
</children>
</grid>
</children>
</grid>
</children>
</grid>
</children>

View file

@ -1,22 +1,109 @@
package GUI;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GUI extends JFrame {
public class GUI extends JFrame implements ActionListener {
private JPanel mainPanel;
private JPanel agendaPanel;
private JPanel arrowPanel;
private JButton previousButton;
private JButton nextButton;
private JButton LMButton;
private JButton HCButton;
private JButton UCRButton;
private JMenuBar menuBar = new JMenuBar();
private JMenu menuFichier = new JMenu("File");
private JMenuItem menuItemAddProj = new JMenuItem("Add projection");
private JMenuItem menuItemEditProj = new JMenuItem("Edit projection");
private JMenuItem menuItemRemoveProj = new JMenuItem("Remove projection");
private int currentPage;
String headers[] = {"Matin", "Midi", "<html>Milieu<br/>Après-midi</html>", "<html>Fin<br/>Après-midi</html>", "Soirée"};
private CompetType currentCompetition = CompetType.LM;
public GUI() {
super();
construct();
}
private void renderMenu() {
menuBar.add(menuFichier);
menuFichier.add(menuItemAddProj);
menuFichier.add(menuItemEditProj);
menuFichier.add(menuItemRemoveProj);
setJMenuBar(menuBar);
}
private void construct() {
this.currentPage = 1;
setTitle("Projection Planning");
setContentPane(mainPanel);
setSize(200,200);
setSize(1280, 800);
setLocationRelativeTo(null);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.renderMenu();
new Agenda(agendaPanel, headers, 8, this.currentPage);
previousButton.addActionListener(this);
nextButton.addActionListener(this);
HCButton.addActionListener(this);
LMButton.addActionListener(this);
UCRButton.addActionListener(this);
menuItemAddProj.addActionListener(this);
menuItemEditProj.addActionListener(this);
menuItemRemoveProj.addActionListener(this);
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source == previousButton) {
this.currentPage--;
Agenda agenda = new Agenda(agendaPanel, headers, 8, this.currentPage);
this.currentPage = agenda.getCurrentPage();
this.repaint();
this.revalidate();
}
else if (source == nextButton) {
this.currentPage++;
Agenda agenda = new Agenda(agendaPanel, headers, 8, this.currentPage);
this.currentPage = agenda.getCurrentPage();
this.repaint();
this.revalidate();
} else if (source == LMButton) {
this.headers = new String[]{"Matin", "Midi", "<html>Milieu<br/>Après-midi</html>", "<html>Fin<br/>Après-midi</html>", "Soirée"};
Agenda agenda = new Agenda(agendaPanel, headers, 8, 0);
currentCompetition = CompetType.LM;
this.repaint();
this.revalidate();
} else if (source == HCButton) {
this.headers = new String[]{"<html>Fin<br/>Matinée</html>", "<html>Fin<br/>Après-midi</html>", "Soirée"};
Agenda agenda = new Agenda(agendaPanel, headers, 8, 0);
currentCompetition = CompetType.HC;
this.repaint();
this.revalidate();
} else if (source == UCRButton) {
this.headers = new String[]{"Matin", "Midi", "<html>Milieu<br/>Après-midi</html>", "<html>Fin<br/>Après-midi</html>", "Soirée"};
Agenda agenda = new Agenda(agendaPanel, headers, 8, 0);
currentCompetition = CompetType.UCR;
this.repaint();
this.revalidate();
} else if (source == this.menuItemAddProj) {
ProjectionHandler dialog = new ProjectionHandler(ProjectionType.ADD);
dialog.pack();
dialog.setVisible(true);
} else if (source == this.menuItemEditProj) {
ProjectionHandler dialog = new ProjectionHandler(ProjectionType.EDIT);
dialog.pack();
dialog.setVisible(true);
} else if (source == this.menuItemRemoveProj) {
ProjectionHandler dialog = new ProjectionHandler(ProjectionType.REMOVE);
dialog.pack();
dialog.setVisible(true);
}
}
}

View file

@ -0,0 +1,125 @@
<?xml version="1.0" encoding="UTF-8"?>
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="GUI.ProjectionHandler">
<grid id="cbd77" binding="contentPane" layout-manager="GridLayoutManager" row-count="3" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="10" left="10" bottom="10" right="10"/>
<constraints>
<xy x="48" y="54" width="436" height="297"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<grid id="98ce1" binding="competitionPanel" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<component id="11335" class="javax.swing.JLabel" binding="competitionLabel">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="10" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Competition"/>
</properties>
</component>
<component id="9a08d" class="javax.swing.JComboBox" binding="competitionComboBox">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="9" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
</component>
</children>
</grid>
<grid id="66435" binding="slotPanel" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<component id="6aae7" class="javax.swing.JLabel" binding="slotLabel">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="10" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Slot"/>
</properties>
</component>
<component id="cdf9a" class="javax.swing.JComboBox" binding="slotComboBox">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="9" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
</component>
</children>
</grid>
<grid id="38155" binding="dayPanel" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<component id="447af" class="javax.swing.JLabel" binding="dayLabel">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="10" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Day"/>
</properties>
</component>
<component id="f63b7" class="javax.swing.JComboBox" binding="dayComboBox">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="9" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
</component>
</children>
</grid>
<component id="6eea5" class="javax.swing.JButton" binding="cancelButton">
<constraints>
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Cancel"/>
</properties>
</component>
<component id="9b61e" class="javax.swing.JButton" binding="confirmButton">
<constraints>
<grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Button"/>
</properties>
</component>
<grid id="37be2" binding="filmPanel" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
<margin top="0" left="0" bottom="0" right="0"/>
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
<border type="none"/>
<children>
<component id="febba" class="javax.swing.JLabel" binding="filmLabel">
<constraints>
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="10" fill="0" indent="0" use-parent-layout="false"/>
</constraints>
<properties>
<text value="Film"/>
</properties>
</component>
<component id="80251" class="javax.swing.JComboBox" binding="filmComboBox">
<constraints>
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="9" fill="1" indent="0" use-parent-layout="false"/>
</constraints>
<properties/>
</component>
</children>
</grid>
</children>
</grid>
</form>

View file

@ -0,0 +1,62 @@
package GUI;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class ProjectionHandler extends JDialog {
private JPanel contentPane;
private JButton cancelButton;
private JButton confirmButton;
private JComboBox competitionComboBox;
private JComboBox dayComboBox;
private JComboBox slotComboBox;
private JPanel competitionPanel;
private JPanel slotPanel;
private JPanel dayPanel;
private JLabel competitionLabel;
private JLabel slotLabel;
private JLabel dayLabel;
private JPanel filmPanel;
private JLabel filmLabel;
private JComboBox filmComboBox;
private ProjectionType projectionType;
public ProjectionHandler(ProjectionType projectionType) {
this.projectionType = projectionType;
setContentPane(contentPane);
setModal(true);
setPreferredSize(new Dimension(500, 300));
handleDialogName();
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
}
});
setLocationRelativeTo(null);
}
private void handleDialogName() {
switch (this.projectionType) {
case ADD: {
setTitle("Add projection");
confirmButton.setText("Add");
break;
}
case EDIT: {
setTitle("Edit projection");
confirmButton.setText("Edit");
break;
}
case REMOVE: {
setTitle("Remove projection");
confirmButton.setText("remove");
break;
}
default:
break;
}
}
}

View file

@ -0,0 +1,5 @@
package GUI;
public enum ProjectionType {
ADD, EDIT, REMOVE
}

View file

@ -0,0 +1,24 @@
package GUI;
import javax.swing.*;
import javax.swing.table.JTableHeader;
import java.awt.*;
class RowHeaderRenderer extends JLabel implements ListCellRenderer {
RowHeaderRenderer(JTable table) {
JTableHeader header = table.getTableHeader();
setOpaque(true);
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
setHorizontalAlignment(CENTER);
setForeground(header.getForeground());
setBackground(header.getBackground());
setFont(header.getFont());
}
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
setText((value == null) ? "" : value.toString());
return this;
}
}

View file

@ -0,0 +1,47 @@
package GUI;
import javax.swing.table.AbstractTableModel;
import java.util.Arrays;
public class TableModel extends AbstractTableModel {
private String[] columnNames;
private Object[][] data;
private int headerSize;
private int day;
public TableModel(int day, int currentPage, int headerSize) {
this.day = day;
columnNames = new String[this.day];
data = new Object[5][this.day];
for (int i = 0; i < this.day; i++) {
this.columnNames[i] = "Jour " + ((i + 1) + (5 * (currentPage)));
}
for (int i = 0; i < 5; i++) {
Arrays.fill(data[i], "");
}
}
@Override
public int getRowCount() {
return data.length;
}
@Override
public int getColumnCount() {
return columnNames.length;
}
@Override
public String getColumnName(int column) {
return columnNames[column];
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
return data[rowIndex][columnIndex];
}
@Override
public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
data[rowIndex][columnIndex] = aValue;
}
}