Kod izglada malo pozamasan:
Code:
package igaronica;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import com.borland.dbswing.*;
import javax.swing.border.*;
import java.sql.*;
import javax.swing.table.DefaultTableModel;
import java.util.StringTokenizer;
public class PregledLoga extends Thread implements ActionListener{
private JPanel panel=new JPanel();
private XYLayout xYLayout1 = new XYLayout();
private JPanel izdvajanje = new JPanel();
private TitledBorder okvir;
private XYLayout xYLayout2 = new XYLayout();
private JLabel izaberite = new JLabel();
private JComboBox izbrojCB = new JComboBox();
private JPanel radnikPanel = new JPanel();
private XYLayout xYLayout3 = new XYLayout();
private TitledBorder titledBorder1;
private JTextField imeRadnikaTF = new JTextField();
private JLabel imeRadnika = new JLabel();
private JPanel vremePanel = new JPanel();
private TitledBorder titledBorder2;
private JComboBox godina1 = new JComboBox();
private JComboBox dan1 = new JComboBox();
private JComboBox mesec1 = new JComboBox();
private XYLayout xYLayout4 = new XYLayout();
private List sat1 = new List();
private List minut1 = new List();
private JCheckBox izmedjuDatuma = new JCheckBox();
private List minut = new List();
private List sat = new List();
private JComboBox mesec = new JComboBox();
private JComboBox dan = new JComboBox();
private JComboBox godina = new JComboBox();
private JPanel tipDogadjajaPanel = new JPanel();
private XYLayout xYLayout5 = new XYLayout();
private JLabel jLabel2 = new JLabel();
private List tipDogadjajaList = new List();
private JButton ok = new JButton();
private TitledBorder titledBorder3;
JDialog f;
JScrollPane sp;
Server veza;
private JTable tabela;
DefaultTableModel model;
public PregledLoga(Server veza){
this.veza=veza;
}
public void ubaciVrednostiDMGSM(){
//postavlja vrednosti
int i;
for(i=1;i<=31;i++){
dan.addItem(i + "");
dan1.addItem(i + "");
}
for(i=1;i<=12;i++){
mesec.addItem(i + "");
mesec1.addItem(i + "");
}
for(i=2004;i<=2012;i++){
godina.addItem(i + "");
godina1.addItem(i + "");
}
for(i=1;i<=24;i++){
sat.addItem(i + "");
sat1.addItem(i + "");
}
for(i=0;i<=59;i++){
minut.addItem(i + "");
minut1.addItem(i + "");
}
}
public void PregledLogaGo() {
f=new JDialog(veza.adminCB.f,"Preglde Dogadjaja",true);
f.setContentPane(panel);
okvir = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(134, 134, 134)),"Izdvajanje");
titledBorder1 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(134, 134, 134)),"Radnik");
titledBorder2 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(134, 134, 134)),"Vreme");
titledBorder3 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white,new Color(134, 134, 134)),"Tip dogadjaja");
panel.setLayout(xYLayout1);
izdvajanje.setBorder(okvir);
izdvajanje.setLayout(xYLayout2);
izaberite.setText("Izaberite");
radnikPanel.setLayout(xYLayout3);
radnikPanel.setBorder(titledBorder1);
imeRadnikaTF.setColumns(12);
imeRadnika.setText("Ime radnika");
vremePanel.setBorder(titledBorder2);
vremePanel.setLayout(xYLayout4);
izmedjuDatuma.setText("Izmedju Datuma");
tipDogadjajaPanel.setLayout(xYLayout5);
jLabel2.setText("Izaberite dogadjaje");
ok.setText("OK");
tipDogadjajaPanel.setBorder(titledBorder3);
panel.add(izdvajanje, new XYConstraints(10, 400, 600, 260));
izdvajanje.add(izaberite, new XYConstraints(10, 10, -1, -1));
izdvajanje.add(izbrojCB, new XYConstraints(65, 8, 110, -1));
izdvajanje.add(radnikPanel, new XYConstraints(10, 40, 165, 85));
radnikPanel.add(imeRadnikaTF, new XYConstraints(10, 25, -1, -1));
radnikPanel.add(imeRadnika, new XYConstraints(10, 0, -1, -1));
izdvajanje.add(vremePanel, new XYConstraints(200, 40, 235, 185));
vremePanel.add(izmedjuDatuma, new XYConstraints(10, 60, -1, -1));
vremePanel.add(minut, new XYConstraints(70, 30, 50, 21));
vremePanel.add(sat, new XYConstraints(10, 30, 50, 21));
vremePanel.add(sat1, new XYConstraints(10, 130, 50, 21));
vremePanel.add(minut1, new XYConstraints(70, 130, 50, 21));
vremePanel.add(mesec, new XYConstraints(70, 0, 50, -1));
vremePanel.add(dan, new XYConstraints(10, 0, 50, -1));
vremePanel.add(godina, new XYConstraints(130, 0, 80, -1));
vremePanel.add(dan1, new XYConstraints(10, 100, 50, -1));
vremePanel.add(mesec1, new XYConstraints(70, 100, 50, -1));
vremePanel.add(godina1, new XYConstraints(130, 100, 80, -1));
izdvajanje.add(tipDogadjajaPanel, new XYConstraints(10, 130, 165, 95));
tipDogadjajaPanel.add(jLabel2, new XYConstraints(10, 0, -1, -1));
tipDogadjajaPanel.add(tipDogadjajaList, new XYConstraints(10, 20, 135, 40));
izdvajanje.add(ok, new XYConstraints(200, 5, 235, -1));
model=new DefaultTableModel();
model.addColumn("Vreme");
model.addColumn("Dogadjaj");
model.addColumn("Radnik");
tabela = new JTable(model);
sp=new JScrollPane(tabela,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
panel.add(sp, new XYConstraints(10, 10, 600, 380));
izbrojCB.addItem("Svi logovi");
izbrojCB.addItem("Radnik");
izbrojCB.addItem("Tip Dogadjaja");
izbrojCB.addItem("Vreme");
ok.addActionListener(this);
izbrojCB.addActionListener(this);
f.setSize(630,690);
f.setResizable(false);
ok.setEnabled(false);
tipoviDogadjaja();
tipDogadjajaList.setMultipleMode(true);
tipDogadjajaList.setEnabled(false);
imeRadnikaTF.setEditable(false);
vremeEnable(false);
izmedjuDatuma.addActionListener(this);
enable1(false);
dan.setSize(1,3);
ubaciVrednostiDMGSM();
sat.select(0);
sat1.select(0);
minut.select(0);
minut1.select(0);
}
public void napuniSve(){
try{
Statement s=veza.konekcija.createStatement();
ResultSet r=s.executeQuery("SELECT * FROM log");
while(r.next()){
model.addRow(new Object[]{r.getString(1),r.getString(2),r.getString(3)});
}
r.close();
s.close();
}
catch(Exception greska){
System.out.println("Greska grrrrrrrr");
}
}
public void brisiTabelu(){
while(model.getRowCount()!=0){
model.removeRow(0);
}
}
public void select(String tabela,String where,String vrednost){
try{
Statement s=veza.konekcija.createStatement();
ResultSet r=s.executeQuery("SELECT * FROM " + tabela + " where " + where + "='" + vrednost + "'");
while(r.next()){
model.addRow(new Object[]{r.getString(1),r.getString(2),r.getString(3)});
}
r.close();
s.close();
}
catch(Exception greska){
System.out.println("Greska select PregledLoga: " + greska.getMessage());
}
}
public void tipoviDogadjaja(){
try{
Statement s=veza.konekcija.createStatement();
ResultSet r=s.executeQuery("Select ime from tipoviDogadjaja");
while(r.next()){
tipDogadjajaList.add(r.getString(1));
}
r.close();
s.close();
}
catch(Exception greska){
System.out.println("Greska tipoviDogadjaja: " + greska.getMessage());
}
}
public void enable(){
if(aktivni.equals("radnik")){
//zamrzava radnika
imeRadnikaTF.setEditable(false);
}
else if(aktivni.equals("tipDogadjaja")){
tipDogadjajaList.setEnabled(false);
}
else if(aktivni.equals("vreme")){
vremeEnable(false);
}
}
public void vremeEnable(boolean ok){
dan.setEnabled(ok);
mesec.setEnabled(ok);
godina.setEnabled(ok);
sat.setEnabled(ok);
minut.setEnabled(ok);
dan1.setEnabled(ok);
mesec1.setEnabled(ok);
godina1.setEnabled(ok);
sat1.setEnabled(ok);
minut1.setEnabled(ok);
izmedjuDatuma.setEnabled(ok);
}
public void enable1(boolean ok){
dan1.setEnabled(ok);
mesec1.setEnabled(ok);
godina1.setEnabled(ok);
sat1.setEnabled(ok);
minut1.setEnabled(ok);
}
String aktivni;
public void actionPerformed(ActionEvent e){
Object src=e.getSource();
if(src==izbrojCB){
switch(izbrojCB.getSelectedIndex()){
case 0:{
//sve
ok.setEnabled(false);
if(aktivni!=null){
enable();
}
aktivni="sve";
brisiTabelu();
napuniSve();
break;
}
case 1:{
//radnik
ok.setEnabled(true);
if(aktivni!=null){
enable();
}
aktivni="radnik";
imeRadnikaTF.setEditable(true);
break;
}
case 2:{
//tip dogadjaja
ok.setEnabled(true);
if(aktivni!=null){
enable();
}
aktivni="tipDogadjaja";
tipDogadjajaList.setEnabled(true);
break;
}
case 3:{
//vreme
ok.setEnabled(true);
if(aktivni!=null){
enable();
}
aktivni="vreme";
vremeEnable(true);
enable1(izmedjuDatuma.isSelected());
break;
}
}
}
else if(src==ok){
casee3:switch(izbrojCB.getSelectedIndex()){
case 1:{
//radnik
String ime=imeRadnikaTF.getText();
brisiTabelu();
select("log","radnik",ime);
break;
}
case 2:{
//tip dogadjaja
String tipovi[]=tipDogadjajaList.getSelectedItems();
brisiTabelu();
for(int i=0;i<tipovi.length;i++){
select("log","opis",tipovi[i]);
}
break;
}
case 3:{
//vreme
brisiTabelu();
int d,m,g,s,mm,d1,m1,g1,s1,mm1;
int d2=0,m2=0,g2=0,s2=0,mm2=0;
d=Integer.parseInt(dan.getSelectedItem() + "");
m=Integer.parseInt(mesec.getSelectedItem() + "");
g=Integer.parseInt(godina.getSelectedItem() + "");
s=Integer.parseInt(sat.getSelectedItem() + "");
mm=Integer.parseInt(minut.getSelectedItem() + "");
if(izmedjuDatuma.isSelected()){
d1=Integer.parseInt(dan1.getSelectedItem() + "");
m1=Integer.parseInt(mesec1.getSelectedItem() + "");
g1=Integer.parseInt(godina1.getSelectedItem() + "");
s1=Integer.parseInt(sat1.getSelectedItem() + "");
mm1=Integer.parseInt(minut1.getSelectedItem() + "");
if(!veza.rezervacijaa.pre(g,m,d,s,mm,g1,m1,d1,s1,mm1)){
//GRESKA selektovano drugo vreme je manje od prvog vremena i obavestava korisnika
//,da treba da unese ispravno vreme
dan1.setSelectedItem(d + "");
mesec1.setSelectedItem(m + "");
godina1.setSelectedItem(g + "");
sat1.select(s);
minut1.select(mm);
JOptionPane.showMessageDialog(null,"Pogresno uneto vreme.Drugo vreme\nmora biti vece od prvog.","Greska",JOptionPane.ERROR_MESSAGE);
break casee3;
}
try{
Statement ss=veza.konekcija.createStatement();
ResultSet r=ss.executeQuery("SELECT * from log");
String vreme="";
while(r.next()){
vreme=r.getString(1);
//rastavljanje "vreme" na d,m,g,s,m
StringTokenizer st=new StringTokenizer(vreme," ");
int brojac=0;
while(st.hasMoreTokens()){
switch(brojac){
case 0:{
//datum
StringTokenizer st1=new StringTokenizer(st.nextToken(),".");
int b=0;
while(st1.hasMoreTokens()){
switch(b){
case 0:{
//mesec
m2=Integer.parseInt(st1.nextToken());
break;
}
case 1:{
//dan
d2=Integer.parseInt(st1.nextToken());
break;
}
case 2:{
//godina
g2=Integer.parseInt(st1.nextToken());
break;
}
}
b++;
}
break;
}
case 1:{
//vreme
StringTokenizer st1=new StringTokenizer(st.nextToken(),":");
int b=0;
while(st1.hasMoreTokens()){
switch(b){
case 0:{
//sat
s2=Integer.parseInt(st1.nextToken());
break;
}
case 1:{
//minuti
mm2=Integer.parseInt(st1.nextToken());
break;
}
}
b++;
}
break;
}
}
brojac++;
}
//sada proverava da li je ucitano vreme zadovoljavajuce i ako jeste dodaje
//,novi red u tabelu
boolean ok=false;
ifblok:if((g<g2)&&(g2<g1)){
ok=true;
break ifblok;
}
else if((g==g2) && (g2<g1)){
ok=true;
break ifblok;
}
else if((g==g1)&&(g1==g2)){
if((m<m2)&&(m2<m1)){
ok=true;
break ifblok;
}
else if((m==m2) && (m2<m1)){
ok=true;
break ifblok;
}
else if((m==m2)&&(m1==m2)){
if((d<d2)&&(d2<d1)){
ok=true;
break ifblok;
}
else if((d==d2) && (d2<d1)){
//ispituje za d2
if(s<s2){
ok=true;
}
else if(s==s2){
if(mm<mm2){
ok=true;
}
}
break ifblok;
}
else if((d<d2)&&(d2==d1)){
//ispituje za d1
if(s2<s1){
ok=true;
}
else if(s2==s1){
if(mm2<mm1){
ok=true;
}
}
}
else if((d==d2)&&(d2==d1)){
if((s==s2)&&(s2==s1)){
//ispituje minute
if(mm<mm2 && mm2<mm1){
ok=true;
}
}
else if((s==s2)&&(s2<s1)){
//ispituje s
if(mm<mm2){
ok=true;
}
}
else if(s<s2 && s2==s1){
//ispituje s1
if(mm2<mm1){
ok=true;
}
}
else if(s<s2 && s2<s1){
ok=true;
}
}
}
}
if(ok){
//datum je izmmedju i dodaje ga u tabelu
model.addRow(new Object[]{vreme,r.getString(2),r.getString(3)});
}
}
r.close();
ss.close();
}
catch(Exception greska){
System.out.println("Greska pri ucitavanju vremena iz loga: " + greska.getMessage());
}
}
else{
select("log","vreme",m + "." + d + "." + g + ". " + s + ":" + mm);
}
break;
}
}
}
else if(src==izmedjuDatuma){
enable1(izmedjuDatuma.isSelected());
}
}
}
[Ovu poruku je menjao veljaradenkovic dana 30.11.2004. u 11:55 GMT+1]
Theodor