private void generateDefaultSorting(ColumnType column) { if (column.getName().equals(ILguiItem.JOB_ID) || column.getName().equals(ILguiItem.JOB_OWNER) || column.getName().equals(ILguiItem.JOB_QUEUE_NAME) || column.getName().equals(ILguiItem.JOB_STATUS)) { column.setSort(SortingType.ALPHA); } else if (column.getName().equals(ILguiItem.JOB_WALL) || column.getName().equals(ILguiItem.JOB_TOTAL_CORES)) { column.setSort(SortingType.NUMERIC); } else { column.setSort(SortingType.DATE); } }
/** * Forwards new information for the jobs to the jobstatus instances, which are afterwards saved * via Memento within the monitor.core plug-in. This function stores all additional information * provided by lml_da in each jobStatusData instance. */ public void forwardRowToJobData() { final JobStatusData[] userJobs = lguiItem.getUserJobs(); final Set<String> userNames = new HashSet<String>(); for (final JobStatusData jobStatus : userJobs) { userNames.add(jobStatus.getString(JobStatusData.OWNER_ATTR)); } // Traverse all tables for (final TableType table : getTables()) { // Get extended rows with attached jobStatusData final Row[] rows = getTableDataWithColor( table.getId(), false); // Contains extended rows with additional data for (int i = 0; i < rows.length; i++) { if (rows[i].status == null) { // If there is no jobstatusdata, do not add additional data continue; } if (!userNames.contains(rows[i].status.getString(JobStatusData.OWNER_ATTR))) { continue; } final RowType rawRow = table.getRow().get(i); // The actual row from LML data // Iterate over all columns and save their key value pairs // into the jobstatus instances for (final ColumnType column : table.getColumn()) { final String columnName = column.getName(); final String value = getCellValue(table, rawRow, columnName); if (value != null) { rows[i].status.putString(columnName, value); } } } } }
private BigInteger getColumnIndex(TableType table, String colName) { if (table != null) { for (final ColumnType column : table.getColumn()) { if (colName.equals(column.getName())) { return column.getId(); } } } return null; }
public Row[] getTableDataWithColor( String gid, boolean addColor, List<IPattern> filterTitlesValues) { final Row[] rows = getTableDataWithColor(gid, addColor); if (rows.length == 0) { return rows; } final BigInteger[] cids = getCids(gid); final TableType table = getTable(gid); // Convert Map filterTitlesValues into Map filterPosValues final Map<Integer, IPattern> filterPosValues = new HashMap<Integer, IPattern>(); for (final IPattern pattern : filterTitlesValues) { BigInteger cid = BigInteger.valueOf(-1); for (final ColumnType column : table.getColumn()) { if (column.getName().equals(pattern.getColumnTitle())) { cid = column.getId(); break; } } if (cid.equals(BigInteger.valueOf(-1))) { continue; } int position = -1; for (int i = 0; i < cids.length; i++) { if (cids[i].equals(cid)) { position = i; break; } } if (position == -1) { continue; } filterPosValues.put(position, pattern); } // Filter the rows final List<Row> filterRows = new ArrayList<Row>(); for (final Row row : rows) { boolean allIncluded = true; for (final int position : filterPosValues.keySet()) { if (row.cells[position] == null) { continue; } final IPattern pattern = filterPosValues.get(position); final String rowValue = row.cells[position].value; if (rowValue.equals(ILMLCoreConstants.QM)) { allIncluded = false; continue; } final String type = pattern.getType(); if (pattern.isRange()) { // Range final String minValue = pattern.getMinValueRange(); final String maxValue = pattern.getMaxValueRange(); if (type.equals(ILMLCoreConstants.TABLECOLUMN_NUMERIC)) { if ((Integer.valueOf(rowValue) < Integer.valueOf(minValue)) || (Integer.valueOf(maxValue) < Integer.valueOf(rowValue))) { allIncluded = false; break; } } else { if (rowValue.compareTo(minValue) < 0 || maxValue.compareTo(rowValue) < 0) { allIncluded = false; break; } } } else if (pattern.isRelation()) { // Relation final String compareValue = pattern.getRelationValue(); final String compareOperator = pattern.getRelationOperator(); if (type.equals(ILMLCoreConstants.TABLECOLUMN_NUMERIC)) { final int rowValueInt = Integer.valueOf(rowValue); final int compareValueInt = Integer.valueOf(compareValue); if (compareOperator.equals(ILMLCoreConstants.EQ) && rowValueInt != compareValueInt) { allIncluded = false; break; } else if (compareOperator.equals(ILMLCoreConstants.NEQ) && rowValueInt == compareValueInt) { allIncluded = false; break; } else if (compareOperator.equals(ILMLCoreConstants.LT) && rowValueInt >= compareValueInt) { allIncluded = false; break; } else if (compareOperator.equals(ILMLCoreConstants.LE) && rowValueInt > compareValueInt) { allIncluded = false; break; } else if (compareOperator.equals(ILMLCoreConstants.GT) && rowValueInt <= compareValueInt) { allIncluded = false; break; } else if (compareOperator.equals(ILMLCoreConstants.GE) && rowValueInt < compareValueInt) { allIncluded = false; break; } } else { if ((compareOperator.equals(ILMLCoreConstants.EQ) && !compareValue.equals(rowValue)) || (compareOperator.equals(ILMLCoreConstants.NEQ) && compareValue.equals(rowValue))) { allIncluded = false; break; } else if (type.equals(ILMLCoreConstants.TABLECOLUMN_ALPHA)) { if ((compareOperator.equals(ILMLCoreConstants.SI) && !rowValue.contains(compareValue)) || (compareOperator.equals(ILMLCoreConstants.NSI) && rowValue.contains(compareValue))) { allIncluded = false; break; } } else if (type.equals(ILMLCoreConstants.TABLECOLUMN_DATE)) { if (compareOperator.equals(ILMLCoreConstants.LT) && rowValue.compareTo(compareValue) >= 0) { allIncluded = false; break; } else if (compareOperator.equals(ILMLCoreConstants.LE) && rowValue.compareTo(compareValue) > 0) { allIncluded = false; break; } else if (compareOperator.equals(ILMLCoreConstants.GT) && rowValue.compareTo(compareValue) <= 0) { allIncluded = false; break; } else if (compareOperator.equals(ILMLCoreConstants.GE) && rowValue.compareTo(compareValue) < 0) { allIncluded = false; break; } } } } } if (allIncluded) { filterRows.add(row); } } return filterRows.toArray(new Row[filterRows.size()]); }