Gibt eine Tabellen�bersicht aller Arbeitspl�tze mit den Best�nden der
jeweiligen Einzelteile aus. Es lassen sich die Anzahl der Arbeiter
pro Arbeitsplatz einstellen.
| Method from net.sourceforge.wisim.controller.JPanelArbeitsplatzlager Detail: |
public void buildArbeitsplatzLagerElementeTabelle() {
setArbeitsplatzLagerElementeTabelle();
int i = 0;
Iterator arbeitsplatzLager_it = arbeitsplatzLager.iterator();
while (arbeitsplatzLager_it.hasNext()) {
ArbeitsplatzLager apLager = (ArbeitsplatzLager) arbeitsplatzLager_it.next();
Einzelteil et = new Einzelteil();
try {
et = dao.getEinzelteil(apLager.getEinzelteilNr());
} catch (WiSimDAOException e) {
wiSimLogger.log("buildArbeitsplatzLagerElementeTabelle()", e);
}
jTableGesamtliste.setValueAt(et.getName(), i, 0);
jTableGesamtliste.setValueAt(String.valueOf(apLager.getBestand()), i, 1);
jTableGesamtliste.setValueAt(String.valueOf(apLager.getMaxBestand()), i, 2);
IconGenerater iconGen = new IconGenerater();
double actBestand = apLager.getBestand();
double actMaxBestand = apLager.getMaxBestand();
double rects = (double)(actBestand/actMaxBestand)*5;
int filledrectsCount = (int) Math.round(rects);
if (apLager.getBestand() < (apLager.getMaxBestand()/4)) {
jTableGesamtliste.setValueAt(iconGen.generateIcon(2, filledrectsCount), i, 3);
} else if ((apLager.getBestand() < (apLager.getMaxBestand()/2))) {
jTableGesamtliste.setValueAt(iconGen.generateIcon(1, filledrectsCount), i, 3);
} else {
jTableGesamtliste.setValueAt(iconGen.generateIcon(0, filledrectsCount), i, 3);
}
i++;
}
}
Baut die Arbeitsplatz-Tabelle |
public void getArbeitsplatzLagerElemente() {
Arbeitsplatz ap = (Arbeitsplatz) arbeitsplaetze.get(jTableArbeitsplaetze.getSelectedRow());
//Arbeiter-Pane
jTextFieldArbeitsplatz.setText(String.valueOf(ap.getNr()));
jSpinnerArbeiter.setModel(new SpinnerNumberModel(ap.getAnzahlArbeiter(), 0, 10, 1));
try {
arbeitsplatzLager = dao.getArbeitsplatzLager(ap.getNr(), "Einzelteil");
} catch (WiSimDAOException e) {
wiSimLogger.log("getArbeitsplatzLagerElemente()", e);
}
apElemAnzahl = arbeitsplatzLager.size();
if (apElemAnzahl > 0) {
buildArbeitsplatzLagerElementeTabelle();
} else {
resetGesamtListe();
}
}
Zeigt die Elemente eines Arbeitsplatzlagers an. |
public void getArbeitsplatzlager() {
try {
arbeitsplaetze = dao.getArbeitsplaetze();
} catch (WiSimDAOException e) {
wiSimLogger.log("getArbeitsplatzLager()", e);
}
apAnzahl = arbeitsplaetze.size();
setArbeitsplatzTabelle();
int i = 0;
Iterator ap_it = arbeitsplaetze.iterator();
while (ap_it.hasNext()) {
Arbeitsplatz ap = (Arbeitsplatz) ap_it.next();
jTableArbeitsplaetze.setValueAt(String.valueOf(ap.getNr()), i, 0);
jTableArbeitsplaetze.setValueAt(ap.getBeschreibung(), i, 1);
String vorgaenger = "";
int[] vorgaengerNr = ap.getVorgaenger();
if (vorgaengerNr.length > 0) {
vorgaenger = String.valueOf(vorgaengerNr[0]);
int x = 1;
while (x < vorgaengerNr.length) {
vorgaenger = vorgaenger + ", " + vorgaengerNr[x];
x++;
}
}
String nachfolger = "";
int[] nachfolgerNr = ap.getNachfolger();
if (nachfolgerNr.length > 0) {
nachfolger = String.valueOf(nachfolgerNr[0]);
int x = 1;
while (x < nachfolgerNr.length) {
nachfolger = nachfolger + ", " + nachfolgerNr[x];
x++;
}
}
if (vorgaenger.equals("0"))
jTableArbeitsplaetze.setValueAt("-", i, 2);
else
jTableArbeitsplaetze.setValueAt(vorgaenger, i, 2);
if (nachfolger.equals("0"))
jTableArbeitsplaetze.setValueAt("-", i, 3);
else
jTableArbeitsplaetze.setValueAt(nachfolger, i, 3);
jTableArbeitsplaetze.setValueAt(String.valueOf(ap.getDauer()), i, 4);
ArbeitsplatzLager apLager = new ArbeitsplatzLager();
try {
apLager = dao.getArbeitsplatzLager(ap.getNr(), 26, "Eingang");
} catch (WiSimDAOException e) {
wiSimLogger.log("getArbeitsplatzLager()", e);
}
tempEingangslagerBestand.add(String.valueOf(apLager.getBestand()));
jprg = new JProgressBar(0, 10);
jprg.setValue(apLager.getBestand());
jprg.setToolTipText("Bestand: " + apLager.getBestand());
if (vorgaenger.equals("0"))
jprg.setEnabled(false);
jTableArbeitsplaetze.setValueAt(jprg, i, 5);
try {
apLager = dao.getArbeitsplatzLager(ap.getNr(), 26, "Ausgang");
} catch (WiSimDAOException e) {
wiSimLogger.log("getArbeitsplatzLager()", e);
}
tempAusgangslagerBestand.add(String.valueOf(apLager.getBestand()));
jprg = new JProgressBar(0, 10);
jprg.setValue(apLager.getBestand());
jprg.setToolTipText("Bestand: " + apLager.getBestand());
if (nachfolger.equals("0"))
jprg.setEnabled(false);
jTableArbeitsplaetze.setValueAt(jprg, i, 6);
i++;
}
}
Holt alle Eingangs und Ausgangslager aus der DB. |
public boolean getIsActive() {
return isActive;
}
Befindet sich der Benutzer auf diesem Pane, so ist "isActive" = TRUE.
Verl�sst der Benutzer das Pane, so ist "isActive" = FALSE.
Wichtig ist diese Variable f�r die Simulation: Es wird nur das Pane
aktualisiert, auf dem sich der Benutzer gerade befindet! |
public boolean getIsBuilt() {
return isBuilt;
}
Wurde das Pane schon einmal aufgebaut, so ist "isBuilt" = TRUE.
Wichtig ist diese Variable f�r die Simulation: Wurde das Pane
schon einmal aufgebaut, so m�ssen die Simulationsthread das Pane
nicht noch einmal initialisieren! |
public void refreshArbeitsplatzLagerElementeTabelle() {
//Refresh Tabelle Arbeitsplaetze
try {
arbeitsplaetze = dao.getArbeitsplaetze();
} catch (WiSimDAOException e) {
wiSimLogger.log("refreshArbeitsplatzLagerElementeTabelle()", e);
}
int i = 0;
Iterator ap_it = arbeitsplaetze.iterator();
while (ap_it.hasNext()) {
Arbeitsplatz ap = (Arbeitsplatz) ap_it.next();
ArbeitsplatzLager apLager = new ArbeitsplatzLager();
try {
apLager = dao.getArbeitsplatzLager(ap.getNr(), 26, "Eingang");
} catch (WiSimDAOException e) {
wiSimLogger.log("refreshArbeitsplatzLagerElementeTabelle()", e);
}
//Zelle wird nur refreshed wenn sich der Bestand ge�ndert hat!
if (!((String)tempEingangslagerBestand.get(i)).equals(String.valueOf(apLager.getBestand()))) {
tempEingangslagerBestand.setElementAt(String.valueOf(apLager.getBestand()), i);
jprg = new JProgressBar(0, 10);
jprg.setValue(apLager.getBestand());
jprg.setToolTipText("Bestand: " + apLager.getBestand());
jTableArbeitsplaetze.setValueAt(jprg, i, 5);
}
try {
apLager = dao.getArbeitsplatzLager(ap.getNr(), 26, "Ausgang");
} catch (WiSimDAOException e) {
wiSimLogger.log("refreshArbeitsplatzLagerElementeTabelle()", e);
}
//Zelle wird nur refreshed wenn sich der Bestand ge�ndert hat!
if (!((String)tempAusgangslagerBestand.get(i)).equals(String.valueOf(apLager.getBestand()))) {
tempAusgangslagerBestand.setElementAt(String.valueOf(apLager.getBestand()), i);
jprg = new JProgressBar(0, 10);
jprg.setValue(apLager.getBestand());
jprg.setToolTipText("Bestand: " + apLager.getBestand());
jTableArbeitsplaetze.setValueAt(jprg, i, 6);
}
i++;
}
//Refresh Tabelle ArbeitsplatzLager
if (jTableArbeitsplaetze.getSelectedRow() >= 0) {
Arbeitsplatz ap = (Arbeitsplatz) arbeitsplaetze.get(jTableArbeitsplaetze.getSelectedRow());
try {
arbeitsplatzLager = dao.getArbeitsplatzLager(ap.getNr(), "Einzelteil");
} catch (WiSimDAOException e) {
wiSimLogger.log("refreshArbeitsplatzLagerElementeTabelle()", e);
}
apElemAnzahl = arbeitsplatzLager.size();
i = 0;
if (apElemAnzahl > 0) {
Iterator arbeitsplatzLager_it = arbeitsplatzLager.iterator();
while (arbeitsplatzLager_it.hasNext()) {
ArbeitsplatzLager apLager = (ArbeitsplatzLager) arbeitsplatzLager_it.next();
//Zelle wird nur aktualisiert wenn sich der Bestand ge�ndert hat.
if (jTableGesamtliste.getValueAt(i, 1) != null && !jTableGesamtliste.getValueAt(i, 1).equals("")) {
if (apLager.getBestand() != Integer.parseInt((String) jTableGesamtliste.getValueAt(i, 1))) {
Einzelteil et = new Einzelteil();
try {
et = dao.getEinzelteil(apLager.getEinzelteilNr());
} catch (WiSimDAOException e) {
wiSimLogger.log("refreshArbeitsplatzLagerElementeTabelle()", e);
}
jTableGesamtliste.setValueAt(String.valueOf(apLager.getBestand()), i, 1);
IconGenerater iconGen = new IconGenerater();
double actBestand = apLager.getBestand();
double actMaxBestand = apLager.getMaxBestand();
double rects = (double)(actBestand/actMaxBestand)*5;
int filledrectsCount = (int) Math.round(rects);
if (apLager.getBestand() < (apLager.getMaxBestand()/4)) {
jTableGesamtliste.setValueAt(iconGen.generateIcon(2, filledrectsCount), i, 3);
} else if ((apLager.getBestand() < (apLager.getMaxBestand()/2))) {
jTableGesamtliste.setValueAt(iconGen.generateIcon(1, filledrectsCount), i, 3);
} else {
jTableGesamtliste.setValueAt(iconGen.generateIcon(0, filledrectsCount), i, 3);
}
}
}
i++;
}
} else {
resetGesamtListe();
}
}
}
|
public void resetGesamtListe() {
int i = jTableGesamtliste.getRowCount()-1;
while (i >= 0) {
jTableGesamtliste.setValueAt("", 3-i, 0);
jTableGesamtliste.setValueAt("", 3-i, 1);
jTableGesamtliste.setValueAt("", 3-i, 2);
jTableGesamtliste.setValueAt("", 3-i, 3);
i--;
}
}
L�scht die GesamtListe unterhalb der Arbeitsplatztabelle. |
public void setArbeiterZahl(int apNr,
Integer anzahl) {
try {
dao.setArbeiterZahl(apNr, anzahl.intValue());
} catch (WiSimDAOWriteException e) {
wiSimLogger.log("setArbeiterZahl()", e);
}
//Aktualisierung der arbeitsplaetze-Collection
try {
arbeitsplaetze = dao.getArbeitsplaetze();
} catch (WiSimDAOException e) {
wiSimLogger.log("setArbeiterZahl()", e);
}
}
Setzt die Zahl an Arbeiter an diesem Arbeitsplatz |
public void setArbeitsplatzLagerElementeTabelle() {
//DefaultTableModel mit Variablen Zeilen, 4 TableHeads und nicht editierbaren Zellen
Object[][] tableInit = new Object[4][4];
DefaultTableModel defTable = new DefaultTableModel(
tableInit,
new String [] {
"Artikelname", "aktueller Bestand", "Max. Bestand", "Belegung"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
};
jTableGesamtliste.setModel(defTable);
jTableGesamtliste.setEnabled(false);
jTableGesamtliste.getTableHeader().setReorderingAllowed(false);
}
Erstellt die ArbeitsplatzLagerElementeTabelle. |
public void setArbeitsplatzTabelle() {
//DefaultTableModel mit Variablen Zeilen, 4 TableHeads und nicht editierbaren Zellen
Object[][] tableInit = new Object[apAnzahl][7];
DefaultTableModel defTable = new DefaultTableModel(
tableInit,
new String [] {
"Nr. ", "Beschreibung", "Vorg�nger", "Nachfolger", "Zeit", "Eingangslager", "Ausgangslager"
}
) {
boolean[] canEdit = new boolean [] {
false, false, false, false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
};
jTableArbeitsplaetze.setModel(defTable);
jTableArbeitsplaetze.setFocusable(false);
jTableArbeitsplaetze.getTableHeader().setReorderingAllowed(false);
javax.swing.table.TableColumn column = null;
//Spaltenbreiten der Tabelle werden gesetzt
for (int i = 0; i < 7; i++) {
column = jTableArbeitsplaetze.getColumnModel().getColumn(i);
switch (i) {
//Nr
case 0:
column.setPreferredWidth(30);
break;
//Beschreibung
case 1:
column.setPreferredWidth(300);
break;
//Vorg�nger
case 2:
column.setPreferredWidth(80);
break;
//Nachfolger
case 3:
column.setPreferredWidth(80);
break;
//Zeit
case 4:
column.setPreferredWidth(40);
break;
//Eingangslager
case 5:
column.setPreferredWidth(110);
break;
//Ausgangslager
case 6:
column.setPreferredWidth(110);
break;
}
}
jTableArbeitsplaetze.setDefaultRenderer( JComponent.class, new JComponentCellRenderer() );
jTableArbeitsplaetze.setDefaultEditor( JComponent.class, new JComponentCellEditor() );
}
Erstellt die ArbeitsplatzTabelle. |
public void setIsActive(boolean isActive) {
this.isActive = isActive;
}
Setzt die Variable isActive auf TRUE oder FALSE |
public void setIsBuilt(boolean isBuilt) {
this.isBuilt = isBuilt;
}
Setzt die Variable isBuilt |