// Nametool.aum // Generated by Ace version Milestone 3 on Fri May 03 13:45:37 PDT 2002 package com.sun.nametool; bos NameTool = com.sun.hr; /** States in our application */ initial state { transition AllProjects "All Projects" { Collection allProjects = factory(NameTool.Project).getAllInstances(); return new AllProjects(allProjects); } // transition AllProjects transition NametoolMain "Nametool Main Listing" { Collection allEmployees = factory(NameTool.Employee).getAllInstances(); Collection allDepartments = factory(NameTool.Department).getAllInstances(); Collection allBuildings = factory(NameTool.Building).getAllInstances(); return new NameToolMain(allEmployees,allDepartments,allBuildings); } // transition NametoolMain } // state initial state AllProjects( Collection of Project Projects) "All Projects" { [Projects(0,n)]: R { projId "ID", name "Project Name" } transition EditProject "Edit Project" { Project p = Projects.getSelectedOne(); return new ProjectDetail(p); } // transition EditProject transition DeleteProject "Delete Project" { Project p = Projects.getSelectedOne(); p.remove(); Collection allProjects = factory(NameTool.Project).getAllInstances(); return new AllProjects(allProjects); } // transition DeleteProject transition CreateProject "Create Project" { ProjectPK key = factory(NameTool.Project).assignNextPK(); Project e = factory(NameTool.Project).create(key); return new ProjectDetail(e); } // transition CreateProject } // state AllProjects state NameToolMain( Collection of Employee Employees, Collection of Department Departments, Collection of Building Buildings) "NameTool Home Page" includes AllEmployees(Employees), AllDepartments(Departments), AllBuildings(Buildings) { transition ViewStatistics "View Statistics" { return new URL("Statistics.html"); } // transition ViewStatistics transition ViewDetailStatistics "View Detail Statistics" { return new URL("TransitionStatistics.jsp"); } // transition ViewDetailStatistics transition ViewTabularStatistics "View TabularStatistics" { return new URL("aceTabularStatistics.jsp?detail=on"); } // transition ViewTabularStatistics transition AceProjectHomePage "Ace Project Home Page" { return new URL("http://sunlabs.eng/projects/ace/"); } // transition AceProjectHomePage transition AceMilestone2 "Ace Milestone 2" { return new URL("http://sunlabs.eng/projects/ace/Milestone2/"); } // transition AceMilestone2 } // state NameToolMain state ProjectDetail( Project p) "Project Detail" { p "Project": R { projId "Id", name "Project Name": RW , [employees(0,n)] "Employees" { empNo "ID", firstName "First Name", lastName "Last Name" } } transition UpdateProject "Update Project" { return new ProjectDetail(p); } // transition UpdateProject transition EditEmployee "Edit Employee" { Employee e = p.employees.getSelectedOne(); return new EmployeeDetail(e); } // transition EditEmployee } // state ProjectDetail state AllEmployees( Collection of Employee Employees) "All Employees" { [Employees(0,n)]: R { empNo "ID", firstName "First Name", lastName "Last Name" } transition EditEmployee "Edit Employee" { Employee e = Employees.getSelectedOne(); return new EmployeeDetail(e); } // transition EditEmployee transition DeleteEmployee "Delete Multiple Selected Employees" { Collection es = Employees.getSelectedMany(); factory(NameTool.Employee).remove(es); Collection allEmployees = factory(NameTool.Employee).getAllInstances(); return new AllEmployees(allEmployees); } // transition DeleteEmployee transition CreateEmployee "Create Employee" { EmployeePK key = factory(NameTool.Employee).assignNextPK(); Employee e = factory(NameTool.Employee).create(key); return new EmployeeDetail(e); } // transition CreateEmployee } // state AllEmployees state AllDepartments( Collection of Department Departments) "All Departments" { [Departments(0,n)]: R { departmentNo "Department Number" } transition EditDepartment "Edit Department" { Department d = Departments.getSelectedOne(); return new DepartmentDetail(d); } // transition EditDepartment transition DeleteProject "Delete Department" { Department p = Departments.getSelectedOne(); p.remove(); Collection allDepartments = factory(NameTool.Department).getAllInstances(); return new AllDepartments(allDepartments); } // transition DeleteProject transition CreateDepartment "Create Department" { DepartmentPK key = factory(NameTool.Department).assignNextPK(); Department e = factory(NameTool.Department).create(key); return new DepartmentDetail(e); } // transition CreateDepartment } // state AllDepartments state AllBuildings( Collection of Building Buildings) "All Buildings" { [Buildings(0,n)]: R { buildingName } transition EditBuilding "Edit Building" { Building b = Buildings.getSelectedOne(); return new BuildingDetail(b); } // transition EditBuilding transition DeleteBuilding "Delete Building" { Building p = Buildings.getSelectedOne(); p.remove(); Collection allBuildings = factory(NameTool.Building).getAllInstances(); return new AllBuildings(allBuildings); } // transition DeleteBuilding transition CreateBuilding "Create Building" { BuildingPK key = factory(NameTool.Building).assignNextPK(); Building e = factory(NameTool.Building).create(key); return new BuildingDetail(e); } // transition CreateBuilding } // state AllBuildings state EmployeeDetail( Employee e) "Employee Detail" { local Collection allEmployees = factory(NameTool.Employee).getAllInstances(); local Collection allDepartments = factory(NameTool.Department).getAllInstances(); local Collection allBuildings = factory(NameTool.Building).getAllInstances(); e "Employee Information": RW { empNo "Employee Number": R , lastName "Last Name", extension "Extension", hireDate "Hire Date", dob "Date of Birth", manager "Manager": W PROPERTIES { chooseFromCollectionName = "allEmployees" } { lastName "Manager Last Name" : R, firstName "Manager First Name" : R }, department "Department": W PROPERTIES { chooseFromCollectionName = "allDepartments" } { name "Department Name" : R, description "Department Description" : R }, worksInBuilding "Works in Building": R { buildingName "Building Name", city "City" }, [projects(0,n)] "Projects" { projId "Id", name "Name" } } transition UpdateEmployee "Update Employee" { return new EmployeeDetail(e); } // transition UpdateEmployee transition EditProject "Edit Project" { Project p = e.projects.getSelectedOne(); return new ProjectDetail(p); } // transition EditProject transition GoToNameToolHome "Go To NameTool Home" { return new URL("./Initial.jsp"); } // transition GoToNameToolHome } // state EmployeeDetail state DepartmentDetail( Department d) "Department Detail" { d "Department": R { departmentNo "Department Number", name "Name": RW , description "Description": RW } transition UpdateDepartment "Update Department" { return new DepartmentDetail(d); } // transition UpdateDepartment transition GoToNameToolHome "Go To NameTool Home" { return new URL("./Initial.jsp"); } // transition GoToNameToolHome } // state DepartmentDetail state BuildingDetail( Building b) "Building Detail" { b "Building": R { buildingName "Building Name", address1 "Address 1": RW , address2 "Address 2": RW , city "City": RW , state "State": RW , zip "Zip Code": RW , country "Country": RW , [employees(0,n)] "Employees" { empNo "ID", firstName "First Name", lastName "Last Name" } } transition UpdateBuilding "Update Building" { return new BuildingDetail(b); } // transition UpdateBuilding transition EditEmployee "Edit Employee" { Employee e = b.employees.getSelectedOne(); return new EmployeeDetail(e); } // transition EditEmployee transition GoToNameToolHome "Go To NameTool Home" { return new URL("./Initial.jsp"); } // transition GoToNameToolHome } // state BuildingDetail