/**
* Copyright [2014] [Christian Loehnert]
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package de.ks.idnadrev.task.work;
import de.ks.activity.ActivityController;
import de.ks.activity.ActivityHint;
import de.ks.i18n.Localized;
import de.ks.idnadrev.entity.Task;
import javafx.beans.property.SimpleObjectProperty;
import javafx.scene.control.Hyperlink;
import javax.enterprise.inject.spi.CDI;
public class WorkingOnTaskLink extends Hyperlink {
protected final SimpleObjectProperty<Task> currentTask = new SimpleObjectProperty<>();
public WorkingOnTaskLink() {
setVisible(false);
currentTask.addListener((p, o, n) -> {
if (n == null) {
setText("");
setVisible(false);
} else {
String taskName = n.getName().length() < 50 ? n.getName() : n.getName().substring(0, 50);
String title = Localized.get("task.workingOn:") + " " + taskName;
setText(title);
setVisible(true);
}
});
setOnAction(e -> workOnTask());
}
protected void workOnTask() {
if (currentTask.get() != null) {
ActivityController activityController = CDI.current().select(ActivityController.class).get();
ActivityHint activityHint = new ActivityHint(WorkOnTaskActivity.class, activityController.getCurrentActivityId());
activityHint.setDataSourceHint(() -> currentTask.get());
activityController.startOrResume(activityHint);
}
}
public Task getCurrentTask() {
return currentTask.get();
}
public SimpleObjectProperty<Task> currentTaskProperty() {
return currentTask;
}
public void setCurrentTask(Task currentTask) {
this.currentTask.set(currentTask);
}
}