Adding pick maintenance program source code.

This commit is contained in:
Wes
2020-06-05 18:05:08 -04:00
parent d9cb000390
commit f77d8a486e
12 changed files with 3292 additions and 1 deletions
+122
View File
@@ -0,0 +1,122 @@
package pickMaint;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
/**
* This class implements all abstract methods in AbstractTableModel as needed to display LoomDSRecords properly.
*
* @author Wesley Ray
*/
public class LoomDSTableModel extends AbstractTableModel {
private static final long serialVersionUID = 1L;
private static final String [] COL_HEADERS = {"Loom", "Weaver", "Style", "Hours", "Picks", "Picks Possible", "Down Time", "Sample Cut"};
private LoomDSRecord[] data;
private Integer[] sampleHighlight;
private Integer[] zeroHighlight;
/**
* Updates the data to be displayed by the table model.
* Also builds an array of specific rows to highlight in a different color due to them being sample cut-ins
* @param data The LoomDSRecord[] to display
*/
public void loadTable(LoomDSRecord[] data){
this.data = data;
ArrayList<Integer> q = new ArrayList<Integer>();
for(LoomDSRecord r : data){
if(r.getLdStyle().trim().equalsIgnoreCase("SAM"))
q.add(r.getLoomNumber());
}
sampleHighlight = q.toArray(new Integer[q.size()]);
q = new ArrayList<Integer>();
for(LoomDSRecord r : data){
float derp = (float) r.getPicks() / (float) r.getMaxPicks();
if(derp <= 0.75 && r.getWeaverNumber() != 700 && r.getWeaverNumber() != 701 && r.getWeaverNumber() != 702)
q.add(r.getLoomNumber());
}
zeroHighlight = q.toArray(new Integer[q.size()]);
this.fireTableDataChanged();
}
/**
* Returns true if the given row number is to be highlighted for being a sample cut
* @param row - the row number to check
* @return true/false if row contains sample cut
*/
public boolean highlightSample(int row){
int target = data[row].getLoomNumber();
for(int i : sampleHighlight){
if(i == target)
return true;
}
return false;
}
/**
* Returns true if the given row number is to be highlighted for having zero picks
* @param row - the row number to check
* @return true/false
*/
public boolean highlightZero(int row){
int target = data[row].getLoomNumber();
for(int i : zeroHighlight){
if(i == target)
return true;
}
return false;
}
/**
* Returns bonus status for a given row
* @param row - the row to check
* @return Bonus or not?
*/
public boolean bonus(int row){
return data[row].isBonus();
}
@Override
public int getRowCount() {
return data.length;
}
@Override
public int getColumnCount() {
return COL_HEADERS.length;
}
@Override
public String getColumnName(int column) {
return COL_HEADERS[column];
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
switch(columnIndex){
case 0:
return data[rowIndex].getLoomNumber();
case 1:
return data[rowIndex].getWeaverNameDisplay();
case 2:
return data[rowIndex].getLdStyle();
case 3:
return data[rowIndex].getHours();
case 4:
return data[rowIndex].getPicks();
case 5:
return data[rowIndex].getMaxPicks() + " (+" + (data[rowIndex].getMaxPicks() - data[rowIndex].getPicks()) + ")";
case 6:
return data[rowIndex].getformattedDowntimeReason();
case 7:
return data[rowIndex].getFormattedCutNumber();
}
return null; //required to compile
}
}