/* * Copyright (c) 2015 University of Illinois Board of Trustees, All rights reserved. * Developed at GSLIS/ the iSchool, by Dr. Jana Diesner, Amirhossein Aleyasen, * Chieh-Li Chin, Shubhanshu Mishra, Kiumars Soltani, and Liang Tao. * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free Software * Foundation; either version 2 of the License, or any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. * * You should have received a copy of the GNU General Public License along with * this program; if not, see <http://www.gnu.org/licenses>. * */ package context.core.entity; import context.app.main.ContextFXController; import java.util.List; import javafx.beans.property.StringProperty; import javafx.collections.FXCollections; import javafx.collections.ListChangeListener; import javafx.collections.ObservableList; /** * * @author Amirhossein Aleyasen <aleyase2@illinois.edu> */ public class Project { StringProperty name; ObservableList<DataElement> data; ObservableList<DataElement> results; ObservableList<TaskInstance> tasks; String stopwordPath; /** * * @param name */ public Project(StringProperty name) { this.name = name; data = FXCollections.observableArrayList(); results = FXCollections.observableArrayList(); tasks = FXCollections.observableArrayList(); data.addListener(new ListChangeListener<DataElement>() { @Override public void onChanged(ListChangeListener.Change<? extends DataElement> change) { System.out.println("Data Changed: "); while (change.next()) { if (change.wasAdded()) { List added = change.getAddedSubList(); System.out.println("Added: " + added); } if (change.wasRemoved()) { List removed = change.getRemoved(); System.out.println("Removed: " + removed); } } } }); results.addListener(new ListChangeListener<DataElement>() { @Override public void onChanged(ListChangeListener.Change<? extends DataElement> change) { System.out.println("Results Changed: "); } }); tasks.addListener(new ListChangeListener<TaskInstance>() { @Override public void onChanged(ListChangeListener.Change<? extends TaskInstance> change) { System.out.println("Tasks Changed: "); } }); } /** * * @return */ public ObservableList<DataElement> getData() { return data; } /** * * @param dataElement */ public void addData(DataElement dataElement) { if (data == null) { data = FXCollections.observableArrayList(); } data.add(dataElement); ContextFXController.addDataToTreeView(dataElement); } /** * * @return */ public ObservableList<DataElement> getResults() { return results; } /** * * @param resultElement */ public void addResult(DataElement resultElement) { if (results == null) { results = FXCollections.observableArrayList(); } results.add(resultElement); ContextFXController.addResultToTreeView(resultElement); } /** * * @return */ public ObservableList<TaskInstance> getTasks() { return tasks; } /** * * @param task */ public void addTask(TaskInstance task) { if (tasks == null) { tasks = FXCollections.observableArrayList(); } tasks.add(task); ContextFXController.addTaskToTreeView(task); } /** * * @param element */ public void delete(ProjectElement element) { if (element instanceof DataElement) { DataElement d = (DataElement) element; if (data.contains(d)) { System.out.println(d.getName().get() + " deleted from data"); data.remove(d); } else if (results.contains(d)) { System.out.println(d.getName().get() + " deleted from results"); results.remove(d); } } else if (element instanceof TaskInstance) { TaskInstance t = (TaskInstance) element; if (tasks.contains(t)) { System.out.println(t.getName().get() + " deleted from tasks"); tasks.remove(t); } } } }