Commit 637a224c authored by Ondra's avatar Ondra
Browse files

Updating GUI

parent 59c8ae24
/dist/
\ No newline at end of file
No preview for this file type
No preview for this file type
No preview for this file type
----------------------------------------------------------------
Wed May 14 20:50:44 CEST 2014:
Booting Derby version The Apache Software Foundation - Apache Derby - 10.10.2.0 - (1582446): instance a816c00e-0145-fc12-8721-000000ac4180
on database directory C:\Users\Ondra\Documents\NetBeansProjects\Training diary\database with class loader sun.misc.Launcher$AppClassLoader@df6ccd
Sat May 17 23:56:19 CEST 2014:
Booting Derby version The Apache Software Foundation - Apache Derby - 10.10.2.0 - (1582446): instance a816c00e-0146-0c2f-86e5-000000c8c0b8
on database directory C:\Users\Ondra\Documents\NetBeansProjects\Training diary\database with class loader sun.misc.Launcher$AppClassLoader@601bb1
Loaded from file:/C:/Users/Ondra/Documents/NetBeansProjects/Training%20diary/libraries/derby.jar
java.vendor=Oracle Corporation
java.runtime.version=1.7.0_40-b43
......
......@@ -3,21 +3,40 @@ package cz.cvut.fel.skoumond.entities;
/**
*
* Abstraktní třída reprezentující položku databáze.
*
* @author Ondra
*/
public abstract class BaseEntity {
/**
* Identifikační číslo položky tabulky.
*/
private int id;
/**
* Konstruktor položky, inicilaizuje identifikační číslo.
*
* @param id
*/
public BaseEntity(int id) {
this.id = id;
}
/**
* Vrací identifikační číslo objektu.
*
* @return id
*/
public int getId() {
return id;
}
/**
* Vrací hashcode.
*
* @return hashcode
*/
@Override
public int hashCode() {
int hash = 3;
......@@ -25,6 +44,12 @@ public abstract class BaseEntity {
return hash;
}
/**
* Nastavuje správné fungování metody Equals.
*
* @param obj
* @return boolean
*/
@Override
public boolean equals(Object obj) {
if (obj == null) {
......@@ -40,6 +65,10 @@ public abstract class BaseEntity {
return true;
}
/**
*
* @return základní výpis
*/
@Override
public String toString() {
return "EntityBase{" + "id=" + id + '}';
......
package cz.cvut.fel.skoumond.entities;
import cz.cvut.fel.skoumond.sql.TrainingDiary;
import java.io.Serializable;
import cz.cvut.fel.skoumond.sql.GuiSupport;
import java.util.Calendar;
import java.util.Objects;
/**
* Trida reprezentujici jeden treninkovy zaznam v diari,
* implementuje serializaci pro zapis do binarniho souboru
* Třída reprezentující jeden tréninkový záznam v diáři.
*
* @author Ondra
*/
public class RunEntity extends BaseEntity implements Serializable {
public class RunEntity extends BaseEntity {
/**
* Datovy typ Calendar, slouzi k ulozeni data a casu
* Datový typ Calendar, sloužící k uložení data a času.
*/
private Calendar dateTime;
/**
* Popis treninkoveho zaznamu
* Popis tréninkového záznamu.
*/
private String desc;
/**
* Delka treninku
* Délka tréninku.
*/
private int sessionTime;
/**
* Vzdalenost urazena pri treninku
* Vzdálenost uražená při tréninku.
*/
private float distInKm;
/**
* Prumerna tepova frekvence pri treninku
* Průměrná tepové frekvence při tréninku.
*/
private int avrgHeartRate;
/**
* Reprezentace typu tréninku.
*/
private TypeEntity type;
/**
* Konstruktor zaznamu, inicilaizuje vsechny sve hodnoty
* Konstruktor záznamu, inicilaizuje všechny své hodnoty.
*
* @param datumCas
* @param desc
......@@ -57,7 +58,7 @@ public class RunEntity extends BaseEntity implements Serializable {
}
/**
* Prazdny konstruktor, slouzi pro spravnou funkci dalsich metod
* Prázdný konstruktor, slouží pro správnou funkci dalších metod.
*/
public RunEntity(int id) {
super(id);
......@@ -70,7 +71,7 @@ public class RunEntity extends BaseEntity implements Serializable {
}
/**
* Vraci datum a cas
* Vrací datum a čas.
*
* @return
*/
......@@ -79,7 +80,7 @@ public class RunEntity extends BaseEntity implements Serializable {
}
/**
* Nastavuje datum a cas
* Nastavuje datum a čas.
*
* @param datumCas
*/
......@@ -88,7 +89,7 @@ public class RunEntity extends BaseEntity implements Serializable {
}
/**
* Vraci popis zaznamu
* Vrací popis záznamu.
*
* @return
*/
......@@ -97,7 +98,7 @@ public class RunEntity extends BaseEntity implements Serializable {
}
/**
* Nastavuje popis zaznamu
* Nastavuje popis záznamu.
*
* @param desc
*/
......@@ -106,7 +107,7 @@ public class RunEntity extends BaseEntity implements Serializable {
}
/**
* Vraci delku treninku
* Vrací délku tréninku.
*
* @return
*/
......@@ -115,7 +116,7 @@ public class RunEntity extends BaseEntity implements Serializable {
}
/**
* Nastavuje delku treninku
* Nastavuje délku tréninku.
*
* @param sessionTime
*/
......@@ -124,7 +125,7 @@ public class RunEntity extends BaseEntity implements Serializable {
}
/**
* Vraci urazenou vzdalenost pri treninku
* Vrací uraženou vzdálenost při tréninku.
*
* @return
*/
......@@ -133,7 +134,7 @@ public class RunEntity extends BaseEntity implements Serializable {
}
/**
* Nastavuje urazenou vzdalenost pri treninku
* Nastavuje uraženou vzdálenost při tréninku.
*
* @param distInKm
*/
......@@ -142,16 +143,16 @@ public class RunEntity extends BaseEntity implements Serializable {
}
/**
* Vraci prumernou tepovou frekvenci
* Vrací průměrnou tepovou frekvenci.
*
* @return
* @return avrgHeartRate
*/
public int getAvrgHeartRate() {
return avrgHeartRate;
}
/**
* Nastavuje prumernou tepovou frekvenci
* Nastavuje průměrnou tepovou frekvenci.
*
* @param avrgHeartRate
*/
......@@ -159,14 +160,29 @@ public class RunEntity extends BaseEntity implements Serializable {
this.avrgHeartRate = avrgHeartRate;
}
/**
* Vrací typeEntitu.
*
* @return type
*/
public TypeEntity getType() {
return type;
}
/**
* Nastavuje entitu.
*
* @param type
*/
public void setType(TypeEntity type) {
this.type = type;
}
/**
* Nastavuje hashcode.
*
* @return hashcode
*/
@Override
public int hashCode() {
int hash = 3;
......@@ -179,6 +195,13 @@ public class RunEntity extends BaseEntity implements Serializable {
return hash;
}
/**
*
* Nastavuje správné fungování metody Equals.
*
* @param obj
* @return boolean
*/
@Override
public boolean equals(Object obj) {
if (obj == null) {
......@@ -209,14 +232,14 @@ public class RunEntity extends BaseEntity implements Serializable {
return true;
}
/**
* Prepis metody toString
* Nastavuje správné fungování výpisu objektu.
*
* @return vraci formatovany retezec objektu RunEntity, formatuje dilci atributy,
* kazdy atribut ma svuj radek
* @return Vrací formátovaný řetězec objektu RunEntity, formátuje
* dílčí atributy, každý atribut má svůj řádek.
*/
@Override
public String toString() {
return "Čas: " + TrainingDiary.formatData.format(dateTime.getTime()) +
return "Čas: " + GuiSupport.formatData.format(dateTime.getTime()) +
String.format("%nPopis tréninku: %s%nDélka tréninku: %s min%n"
+ "Uběhnutá vzdálenost: %.1f km%n"
+ "Průměrná tepová frekvence: %s tepů za vteřinu%n",
......
......@@ -4,27 +4,52 @@ package cz.cvut.fel.skoumond.entities;
import java.util.Objects;
/**
*
* Třída reprezentující typ tréninků v diáři.
*
* @author Ondra
*/
public class TypeEntity extends BaseEntity {
/**
* Název typu tréninku.
*/
private String type;
/**
* Konstruktor
*
*
* @param id
* @param type
*/
public TypeEntity(int id, String type) {
super(id);
this.type = type;
}
/**
* Vrací typ tréninku.
*
* @return type
*/
public String getType() {
return type;
}
/**
* Zadává typ tréninku.
*
* @param type
*/
public void setType(String type) {
this.type = type;
}
/**
* Nastavuje správný hashcode.
*
* @return hashcode
*/
@Override
public int hashCode() {
int hash = 7;
......@@ -32,6 +57,12 @@ public class TypeEntity extends BaseEntity {
return hash;
}
/**
* Nastavuje správné fungování metody Equals.
*
* @param obj
* @return
*/
@Override
public boolean equals(Object obj) {
if (obj == null) {
......@@ -47,6 +78,11 @@ public class TypeEntity extends BaseEntity {
return true;
}
/**
* Vrací správný tvar objektu ve formátu String.
*
* @return String
*/
@Override
public String toString() {
return "Typ tréninku: " + type + "\n\n";
......
......@@ -194,16 +194,9 @@ public class DatabaseBrowser extends JFrame {
String catalog = (catalogBox.isEnabled()
? catalogBox.getSelectedItem().toString()
: null);
if (schemaBox == null) {
System.err.println("Schema is null");
}
if (schemaBox != null) {
System.err.println("Schema is not null");
}
// String schema = (schemaBox.isEnabled()
// ? schemaBox.getSelectedItem().toString()
// : null);
String schema = null;
String schema = (schemaBox.isEnabled()
? schemaBox.getSelectedItem().toString()
: null);
String tableName = (String)tableBox.getSelectedItem();
if (tableName == null) {
table.setModel(new DefaultTableModel());
......@@ -219,7 +212,7 @@ public class DatabaseBrowser extends JFrame {
ResultSet rset = stmt.executeQuery("SELECT * FROM RUN.APP");
table.setModel(new ResultSetTableModel(rset));
} catch (Exception e) {
System.err.println("Je to pičus");
System.err.println("Chyba databáze.");
};
}
......
package cz.cvut.fel.skoumond.gui;
import cz.cvut.fel.skoumond.entities.RunEntity;
import cz.cvut.fel.skoumond.sql.RunRepository;
import cz.cvut.fel.skoumond.sql.GuiSupport;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.List;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.AbstractTableModel;
/**
*
* @author Ondra
*/
public class Mainframe {
public class Mainframe extends JFrame {
private Connection connection;
private JComboBox catalogBox;
private JComboBox schemaBox;
private JComboBox tableBox;
private JTable jTable;
private Dimension dimension;
private int centerX;
private int centerY;
public Mainframe() throws Exception {
super("Tréninkový diář");
Mainframe.ConnectionDialog cd = new Mainframe.ConnectionDialog(this);
connection = cd.getConnection();
buildFrameLayout();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(600, 250);
getWindowCenter();
setLocation(centerX, centerY);
setVisible(true);
}
//mainframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// mainframe.setSize(600, 200);
//mainframe.setLocationRelativeTo(null);
// mainframe.setVisible(true);
public void SimpleTableTest() {
Container pane = getContentPane();
pane.setLayout(new BorderLayout());
TestTable tv = new TestTable();
//table = new JTable(tv);
//table.setAutoCreateRowSorter(true);
// TableColumnModel tcm = jTable.getColumnModel();
// TableColumn tc = tcm.getColumn(TableValues.GENDER);
// tc.setCellRenderer(new GenderRenderer());
//pane.add(jTable, BorderLayout.CENTER);
//JScrollPane jsp = new JScrollPane(jTable);
//pane.add(jsp, BorderLayout.CENTER);
}
private void buildFrameLayout() {
Container pane = getContentPane();
pane.setLayout(new BorderLayout());
//pane.add(getSelectionPanel(), BorderLayout.NORTH);
ResultSetTableModel rstm = new ResultSetTableModel();
jTable = new JTable(rstm);
//jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jTable.setAutoCreateRowSorter(true);
//refreshTable();
pane.add(new JScrollPane(jTable), BorderLayout.CENTER);
pane.add(getFrameButtonPanel(), BorderLayout.SOUTH);
}
private JPanel getFrameButtonPanel() {
JPanel panel = new JPanel();
JButton button = new JButton("Konec");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
System.exit(0);
}
});
panel.add(button);
return panel;
}
private void getWindowCenter() {
dimension = Toolkit.getDefaultToolkit().getScreenSize();
centerX = (int) ((dimension.getWidth() - getWidth()) / 2);
centerY = (int) ((dimension.getHeight() - getHeight()) / 2);
}
/*
public class SimpleTableTest extends JFrame {
protected JTable jTable;
public SimpleTableTest() {
Container pane = getContentPane();
pane.setLayout(new BorderLayout());
TestTable tv = new TestTable();
jTable = new JTable(tv);
jTable.setAutoCreateRowSorter(true);
// TableColumnModel tcm = jTable.getColumnModel();
// TableColumn tc = tcm.getColumn(TableValues.GENDER);
// tc.setCellRenderer(new GenderRenderer());
//pane.add(jTable, BorderLayout.CENTER);
JScrollPane jsp = new JScrollPane(jTable);
pane.add(jsp, BorderLayout.CENTER);
}
}
*/
class ConnectionDialog extends JDialog {
private JTextField useridField;
private JTextField passwordField;
private JTextField urlField;
private boolean canceled;
private Connection connect;
public ConnectionDialog(JFrame f) {
super(f, "Připojit k databázi", true);
buildDialogLayout();
setSize(300, 200);
setLocationRelativeTo(null);
}
private Connection getConnection() {
setVisible(true);
return connect;
}
private void buildDialogLayout() {
JLabel label;
Container pane = getContentPane();
pane.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.WEST;
gbc.insets = new Insets(5, 10, 5, 10);
gbc.gridx = 0;
gbc.gridy = 0;
label = new JLabel("ID uživatele:", JLabel.LEFT);
pane.add(label, gbc);
gbc.gridy++;
label = new JLabel("heslo:", JLabel.LEFT);
pane.add(label, gbc);
gbc.gridy++;
label = new JLabel("URL:", JLabel.LEFT);
pane.add(label, gbc);
gbc.gridx = 1;
gbc.gridy = 0;
useridField = new JTextField(10);
pane.add(useridField, gbc);
gbc.gridy++;
passwordField = new JTextField(10);
pane.add(passwordField, gbc);
gbc.gridy++;
urlField = new JTextField(15);
pane.add(urlField, gbc);
gbc.gridx = 0;
gbc.gridy = 3;
gbc.gridwidth = GridBagConstraints.REMAINDER;
gbc.anchor = GridBagConstraints.CENTER;
pane.add(getButtonPanel(), gbc);
}
private JPanel getButtonPanel() {
JPanel panel = new JPanel();
JButton btn = new JButton("Ok");
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
onDialogOk();
}
});
panel.add(btn);
btn = new JButton("Storno");
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
onDialogCancel();
}