Skip to content

Instantly share code, notes, and snippets.

@jmini
Created November 13, 2014 08:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jmini/eaa7199683f834a3a878 to your computer and use it in GitHub Desktop.
Save jmini/eaa7199683f834a3a878 to your computer and use it in GitHub Desktop.
Planner field example - Eclipse Scout
@Order(10.0)
public class CarsPlannerField extends AbstractPlannerField<ResourceTable, ActivityMap, Long, Long> {
private static final long CLIO = 1001L;
private static final long TWINGO = 1002L;
private static final long AUDI = 1003L;
private static final long SMART = 1004L;
private Long m_ActivityIdCounter = 100L;
@Override
protected int getConfiguredGridH() {
return 7;
}
@Override
protected int getConfiguredGridW() {
return 2;
}
@Override
protected int getConfiguredMiniCalendarCount() {
return 0;
}
@Override
protected void execInitField() throws ProcessingException {
getActivityMap().setPlanningMode(IActivityMap.PLANNING_MODE_DAY);
Date d = DateUtility.parse("2014-11-01", "yyyy-MM-dd");
Date[] days = new Date[30];
for (int i = 0; i < days.length; i++) {
days[i] = DateUtility.addDays(d, i);
}
getActivityMap().setDays(days);
loadResourceTableData();
}
@Override
protected Object[][] execLoadActivityMapData(List<? extends Long> resourceIds, List<? extends ITableRow> resourceRows) throws ProcessingException {
Object[][] data = new Object[3][9];
int i = -1;
//Activity 101:
i++;
data[i][0] = CLIO; // resourceId
data[i][1] = createActivityId(); // activityId
data[i][2] = DateUtility.parse("2014-11-01", "yyyy-MM-dd"); // startTime
data[i][3] = DateUtility.parse("2014-11-03", "yyyy-MM-dd"); // endTime
data[i][4] = null; // text
data[i][5] = null; // tooltipText
data[i][6] = ""; // iconId
data[i][7] = 1f; // majorValue
data[i][8] = null; // minorValue
//Activity 102:
i++;
data[i][0] = AUDI; // resourceId
data[i][1] = createActivityId(); // activityId
data[i][2] = DateUtility.parse("2014-11-02", "yyyy-MM-dd"); // startTime
data[i][3] = DateUtility.parse("2014-11-05", "yyyy-MM-dd"); // endTime
data[i][4] = null; // text
data[i][5] = null; // tooltipText
data[i][6] = ""; // iconId
data[i][7] = 1f; // majorValue
data[i][8] = null; // minorValue
//Activity 103:
i++;
data[i][0] = TWINGO; // resourceId
data[i][1] = createActivityId(); // activityId
data[i][2] = DateUtility.parse("2014-11-10", "yyyy-MM-dd"); // startTime
data[i][3] = DateUtility.parse("2014-11-15", "yyyy-MM-dd"); // endTime
data[i][4] = null; // text
data[i][5] = null; // tooltipText
data[i][6] = ""; // iconId
data[i][7] = 1f; // majorValue
data[i][8] = null; // minorValue
return data;
}
@Override
protected Object[][] execLoadResourceTableData() throws ProcessingException {
Object[][] data = new Object[4][3];
int i = -1;
//Car 1001:
i++;
data[i][0] = CLIO;
data[i][1] = "Clio";
data[i][2] = "ZH 522 802";
//Car 1002:
i++;
data[i][0] = TWINGO;
data[i][1] = "Twingo";
data[i][2] = "ZH 445 789";
//Car 1003:
i++;
data[i][0] = AUDI;
data[i][1] = "Audi";
data[i][2] = "SZ 65726";
//Car 1004:
i++;
data[i][0] = SMART;
data[i][1] = "Smart";
data[i][2] = "SG 197 052";
return data;
}
@Order(10.0)
public class ResourceTable extends AbstractExtensibleTable {
@Override
protected boolean getConfiguredAutoResizeColumns() {
return true;
}
@Override
protected boolean getConfiguredSortEnabled() {
return false;
}
@Override
protected void execRowAction(ITableRow row) throws ProcessingException {
loadActivityMapDataOfSelectedRecources();
}
public NameColumn getNameColumn() {
return getColumnSet().getColumnByClass(NameColumn.class);
}
public CarIdColumn getCarIdColumn() {
return getColumnSet().getColumnByClass(CarIdColumn.class);
}
public NameColumn getDetailColumn() {
return getColumnSet().getColumnByClass(NameColumn.class);
}
@Order(10.0f)
public class CarIdColumn extends AbstractLongColumn {
@Override
protected boolean getConfiguredPrimaryKey() {
return true;
}
@Override
protected boolean getConfiguredDisplayable() {
return false;
}
}
@Order(20.0f)
public class NameColumn extends AbstractStringColumn {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Name");
}
}
@Order(30.0f)
public class DetailColumn extends AbstractStringColumn {
@Override
protected String getConfiguredHeaderText() {
return TEXTS.get("Detail");
}
}
}
@Order(10.0)
public class ActivityMap extends AbstractExtensibleActivityMap<Long, Long> {
@Order(10.0)
public class CreateMenu extends AbstractMenu {
@Override
protected String getConfiguredText() {
return TEXTS.get("Create");
}
@Override
protected Set<? extends IMenuType> getConfiguredMenuTypes() {
return CollectionUtility.hashSet(ActivityMapMenuType.Selection);
}
@Override
protected void execAction() throws ProcessingException {
List<ActivityCell<Long, Long>> cells = new ArrayList<ActivityCell<Long, Long>>();
for (Long resourceId : getSelectedResourceIds()) {
ActivityCell<Long, Long> ac = new ActivityCell<Long, Long>(resourceId, createActivityId(), getSelectedBeginTime(), getSelectedEndTime(), null, null, null, 1f, 0f);
cells.add(ac);
}
addActivityCells(cells);
}
}
@Order(20.0)
public class DeleteMenu extends AbstractMenu {
@Override
protected String getConfiguredText() {
return TEXTS.get("DeleteMenu");
}
@Override
protected Set<? extends IMenuType> getConfiguredMenuTypes() {
return CollectionUtility.hashSet(ActivityMapMenuType.Activity);
}
@Override
protected void execAction() throws ProcessingException {
ActivityCell<Long, Long> ac = getSelectedActivityCell();
removeActivityCells(Collections.singletonList(ac));
}
}
}
private Long createActivityId() {
m_ActivityIdCounter++;
return m_ActivityIdCounter;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment