/******************************************************************* Copyright (c) 2001-2010 Apprisant Technologies Inc. All rights reserved. Apprisant Technologies permits non-exclusive royalty free use, copying and modification of this demo program source code for the purposes of evaluating the Apprisant Toolkit or building applications that use it. This software and documentation is provided "AS IS". APPRISANT TECHNOLOGIES DISCLAIMS ANY REPRESENTATIONS AND WARRANTIES, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTY OF MERCHANTABILITY AND FITNESS OF THIS PRODUCT FOR ANY PARTICULAR PURPOSE. APPRISANT TECHNOLOGIES SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY ANY PARTY, INCLUDING LOST PROFITS, ARISING FROM THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ITS DERIVATIONS. ********************************************************************/ package project; import java.io.*; import java.util.*; import apprisant.diagram.*; import apprisant.diagram.data.*; import project.Job.JobType; // enum class import project.Job.Status; // enum class import project.Job.Priority; // enum class /* The data model for the Project demo. Each project is represented by a Job instance. Some data objects are stored in a reserve pool for use with the Add and Remove buttons. */ public class ProjectData extends SimpleDataModel { private ArrayList pool = new ArrayList(); public ProjectData() { super(); initProjects(); } public void initProjects() { super.clear(); pool.clear(); ArrayList data = new ArrayList(); int key = 1; data.add(new Job (key, "C4352", JobType.INSTALLATION, Status.READY, Priority.HIGH)); key++; data.add(new Job (key, "C4892", JobType.REPAIR, Status.READY, Priority.HIGH)); key++; data.add(new Job (key, "F7462", JobType.OVERHAUL, Status.WAITING, Priority.HIGH)); key++; data.add(new Job (key, "F9065", JobType.OVERHAUL, Status.READY, Priority.HIGH)); key++; data.add(new Job (key, "G3987", JobType.OVERHAUL, Status.READY, Priority.MEDIUM)); key++; data.add(new Job (key, "B3822", JobType.REPAIR, Status.WAITING, Priority.MEDIUM)); key++; data.add(new Job (key, "C7765", JobType.INSTALLATION, Status.READY, Priority.MEDIUM)); key++; data.add(new Job (key, "C8787", JobType.REPAIR, Status.WAITING, Priority.MEDIUM)); key++; data.add(new Job (key, "D5698", JobType.OVERHAUL, Status.WAITING, Priority.MEDIUM)); key++; data.add(new Job (key, "A4589", JobType.OVERHAUL, Status.READY, Priority.LOW)); key++; data.add(new Job (key, "G8974", JobType.REPAIR, Status.READY, Priority.LOW)); key++; data.add(new Job (key, "C3256", JobType.INSTALLATION, Status.WAITING, Priority.LOW)); key++; pool.add(new Job (key, "G8922", JobType.REPAIR, Status.WAITING, Priority.HIGH)); key++; pool.add(new Job (key, "A2938", JobType.INSTALLATION, Status.READY, Priority.LOW)); key++; pool.add(new Job (key, "B4457", JobType.REPAIR, Status.READY, Priority.HIGH)); key++; pool.add(new Job (key, "C8987", JobType.INSTALLATION, Status.READY, Priority.MEDIUM)); key++; pool.add(new Job (key, "A5847", JobType.OVERHAUL, Status.READY, Priority.LOW)); key++; pool.add(new Job (key, "B7845", JobType.OVERHAUL, Status.WAITING, Priority.MEDIUM)); key++; super.add(data); } /* Methods for the Add and Remove button listeners. */ public void addProject() { if (pool.size() > 0) { super.add(pool.remove(0)); } } public void removeProject (Object key) { if (key != null) { Job d = (Job) get(key); super.remove(key); pool.add(d); } } }