123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- package ui.controller;
- import java.util.HashMap;
- import java.util.Map.Entry;
- import classes.Category;
- import classes.CpsEdge;
- import classes.AbstractCpsObject;
- import classes.HolonElement;
- import classes.HolonObject;
- import ui.model.Model;
- public class MultiPurposeController {
- private Model MODEL;
- public MultiPurposeController(Model model) {
- this.MODEL = model;
- }
- /**
- * search for category
- *
- * @param name
- * @return
- */
- public Category searchCat(String category) {
- Integer idx;
- if ((idx = MODEL.getCgIdx().get(category)) == null || MODEL.getCgIdx().size() < 1)
- return null;
- else
- return MODEL.getCategories().get(idx);
- }
- /**
- * Search for Object
- *
- * @param object
- * @param list
- * @return
- */
- public AbstractCpsObject searchCatObj(Category category, String object) {
- Integer idx;
- if ((idx = category.getObjIdx().get(object)) == null || category.getObjIdx().size() < 1)
- return null;
- else
- return category.getObjects().get(idx);
- }
- /**
- * Search for Object by ID
- *
- * @param ID
- * @param list
- * @return
- */
- public AbstractCpsObject searchByID(int ID) {
- Integer idx;
- if ((idx = MODEL.getCvsObjIdx().get(ID)) == null || MODEL.getCvsObjIdx().size() < 1)
- return null;
- else
- return MODEL.getObjectsOnCanvas().get(idx);
- }
- /**
- * Search for Element
- *
- * @param object
- * @param element
- * @return
- */
- public HolonElement searchEle(HolonObject object, String element) {
- Integer idx;
- if ((idx = object.getEleIdx().get(element)) == null || object.getEleIdx().size() < 1)
- return null;
- else
- return object.getElements().get(idx);
- }
- public HolonElement searchEleById(HolonObject object, int idEle) {
- return object.searchElementById(idEle);
- }
- public CpsEdge searchEdge(int a, int b) {
- AbstractCpsObject A = searchByID(a);
- AbstractCpsObject B = searchByID(b);
- for (CpsEdge edge : MODEL.getEdgesOnCanvas()) {
- // if (edge.getA().getObjName().equals(A.getObjName()) &&
- // (edge.getB().getObjName().equals(B.getObjName()))
- // || edge.getB().getObjName().equals(A.getObjName())
- // && (edge.getA().getObjName().equals(B.getObjName())))
- if ((edge.getA().equals(A) && edge.getB().equals(B)) || (edge.getB().equals(A)) && edge.getA().equals(B))
- return edge;
- }
- return null;
- }
- /**
- * Decrement the Indices if a Key as been removed
- *
- * @param key
- * @param map
- */
- public <T> void decIdx(T key, HashMap<T, Integer> map) {
- for (Entry<T, Integer> i : map.entrySet()) {
- if (i.getValue() > map.get(key))
- i.setValue(i.getValue() - 1);
- }
- }
- /**
- * Copies a HashMap into a new One
- *
- * @param map
- * @return
- */
- public static <T, Integer> HashMap<T, Integer> copyHashMap(HashMap<T, Integer> map) {
- HashMap<T, Integer> newMap = new HashMap<>();
- for (Entry<T, Integer> i : map.entrySet()) {
- newMap.put(i.getKey(), i.getValue());
- }
- return newMap;
- }
- }
|