GUIController.java
// Package name
package controller;
// System imports
// Local imports
import model.UMLClass;
import model.UMLClassManager;
/**
* Controller for the GUIView
* @author ryan
*
*/
public class GUIController extends UMLController {
public GUIController(UMLClassManager model) {
super(model);
}
/**
* Add class with specified location
*/
public int addClass(String className, int x, int y) {
int result = model.addClass(className);
if(result == 0) {
// Set classes x and y location
result = model.setClassLocation(className, x, y);
// Notify observers of change
notify("addClass", getModel().getClass(className));
}
return result;
}
/**
* Add class with default location at 0, 0
*/
@Override
public int addClass(String className) {
return addClass(className, 0, 0);
}
/**
* Remove specified class
*/
@Override
public int removeClass(String className) {
// Save instance of class
UMLClass temp = model.getClass(className);
int result = model.removeClass(className);
if(result == 0) {
// Notify observer of change
notify("removeClass", temp);
}
return result;
}
@Override
public int addField(String className, String fieldName, String type) {
int result = model.addFields(className, fieldName, type);
if(result == 0) {
// Notify observer of change
notify("fieldChange", model.getClass(className));
}
return result;
}
@Override
public int removeField(String className, String fieldName) {
int result = model.removeFields(className, fieldName);
if(result == 0) {
// Notify observer of change
notify("fieldChange", model.getClass(className));
}
return result;
}
@Override
public int addMethod(String className, String returnType, String methodName, String params) {
int result = model.addMethods(className, returnType, methodName, params);
if(result == 0) {
// Notify observer of change
notify("methodChange", model.getClass(className));
}
return result;
}
@Override
public int removeMethod(String className, String methodName, String params) {
int result = model.removeMethods(className, methodName, params);
if(result == 0) {
// Notify observer of change
notify("methodChange", model.getClass(className));
}
return result;
}
@Override
public int addRelationship(String class1, String type, String class2) {
int result = model.addRelationship(class1, type, class2);
if(result == 0) {
// Notify observer of change
notify("relationshipChange", model);
}
return result;
}
@Override
public int removeRelationship(String class1, String type, String class2) {
int result = model.removeRelationship(class1, type, class2);
if(result == 0) {
// Notify observer of change
notify("relationshipChange", model);
}
return result;
}
@Override
public int editClass(String oldClass, String newClass) {
int result = model.editClass(oldClass, newClass);
if(result == 0) {
// Notify observer of change
notify("classChange", model.getClass(newClass));
}
return result;
}
@Override
public int editField(String className, String oldField, String newField) {
int result = model.editFields(className, oldField, newField);
if(result == 0) {
// Notify observer of change
notify("fieldChange", model.getClass(className));
}
return result;
}
@Override
public int editRelationships(String originClass, String oldType, String destClass, String newType) {
int result = model.editRelationships(originClass, oldType, destClass, newType);
if (result == 0) {
notify("editRelationships", model);
}
return result;
}
@Override
public int editMethod(String className, String oldMethod, String newMethod, String params) {
int result = model.editMethods(className, oldMethod, newMethod, params);
if(result == 0) {
// Notify observer of change
notify("methodChange", model.getClass(className));
}
return result;
}
}