use of de.catma.ui.events.ProjectChangedEvent in project catma by forTEXT.
the class ProjectCard method initComponents.
protected void initComponents() {
addStyleName("projectlist__card");
CssLayout preview = new CssLayout();
preview.addStyleName("projectlist__card__preview");
descriptionLabel = new Label(projectReference.getDescription());
descriptionLabel.setWidth("100%");
preview.addComponents(descriptionLabel);
preview.addLayoutClickListener(evt -> handleOpenProjectRequest());
addComponent(preview);
HorizontalFlexLayout descriptionBar = new HorizontalFlexLayout();
descriptionBar.addStyleName("projectlist__card__descriptionbar");
descriptionBar.setAlignItems(FlexLayout.AlignItems.BASELINE);
descriptionBar.setWidth("100%");
nameLabel = new Label(projectReference.getName());
nameLabel.setWidth("100%");
descriptionBar.addComponent(nameLabel);
IconButton btnRemove = new IconButton(VaadinIcons.TRASH);
descriptionBar.addComponents(btnRemove);
btnRemove.addClickListener((event -> {
ConfirmDialog.show(UI.getCurrent(), "Delete Project", "Do you want to delete the whole Project '" + projectReference.getName() + "'?", "OK", "Cancel", (evt) -> {
try {
if (evt.isConfirmed()) {
projectManager.delete(projectReference.getProjectId());
eventBus.post(new ProjectChangedEvent(projectReference.getProjectId()));
}
} catch (Exception e) {
errorLogger.showAndLogError("can't delete Project " + projectReference.getName(), e);
}
});
}));
IconButton btnEdit = new IconButton(VaadinIcons.PENCIL);
btnEdit.addClickListener(click -> {
new EditProjectDialog(projectReference, projectManager, result -> {
try {
projectManager.updateProject(result);
descriptionLabel.setValue(result.getDescription());
nameLabel.setValue(result.getName());
} catch (IOException e) {
errorLogger.showAndLogError("Failed to update Project", e);
eventBus.post(new ProjectChangedEvent());
}
}).show();
});
descriptionBar.addComponent(btnEdit);
IconButton btnLeave = new IconButton(VaadinIcons.EXIT);
btnLeave.addClickListener((event -> {
ConfirmDialog.show(UI.getCurrent(), "Leave Project", "Do you want to leave '" + projectReference.getName() + "'?", "OK", "Cancel", (evt) -> {
try {
if (evt.isConfirmed()) {
projectManager.leaveProject(projectReference.getProjectId());
}
} catch (Exception e) {
errorLogger.showAndLogError("can't leave project " + projectReference.getName(), e);
}
eventBus.post(new ProjectChangedEvent());
});
}));
descriptionBar.addComponent(btnLeave);
rbacEnforcer.register(RBACConstraint.ifNotAuthorized((role) -> (rbacManager.hasPermission(role, RBACPermission.PROJECT_EDIT)), () -> {
btnEdit.setVisible(false);
btnEdit.setEnabled(false);
}));
rbacEnforcer.register(RBACConstraint.ifNotAuthorized((role) -> (rbacManager.hasPermission(role, RBACPermission.PROJECT_DELETE)), () -> {
btnRemove.setVisible(false);
btnRemove.setEnabled(false);
}));
rbacEnforcer.register(RBACConstraint.ifNotAuthorized((role) -> rbacManager.hasPermission(role, RBACPermission.PROJECT_LEAVE) && !rbacManager.hasPermission(role, RBACPermission.PROJECT_DELETE), () -> {
btnLeave.setVisible(false);
btnLeave.setEnabled(false);
}));
// IconButton buttonAction = new IconButton(VaadinIcons.ELLIPSIS_DOTS_V);
// descriptionBar.addComponents(buttonAction);
addComponents(descriptionBar);
}
use of de.catma.ui.events.ProjectChangedEvent in project catma by forTEXT.
the class CreateProjectCard method initComponents.
private void initComponents() {
addStyleName("projectlist__newproject");
CssLayout newproject = new CssLayout();
newproject.addStyleName("projectlist__newproject__link");
Label labelDesc = new Label("create new project");
labelDesc.setWidth("100%");
newproject.addComponents(labelDesc);
newproject.addLayoutClickListener(evt -> {
new CreateProjectDialog(projectManager, result -> eventBus.post(new ProjectChangedEvent())).show();
});
addComponent(newproject);
HorizontalFlexLayout descriptionBar = new HorizontalFlexLayout();
descriptionBar.addStyleName("projectlist__card__descriptionbar");
descriptionBar.setAlignItems(FlexLayout.AlignItems.BASELINE);
descriptionBar.setWidth("100%");
addComponents(descriptionBar);
}
use of de.catma.ui.events.ProjectChangedEvent in project catma by forTEXT.
the class ProjectJoinHandler method uiOnMessage.
@Override
public void uiOnMessage(Message<JoinedProjectMessage> message) {
if (message.getMessageObject().getInvitation().getKey() == this.invitation.getKey()) {
this.eventBus.post(new ProjectChangedEvent());
Notification.show("Joined successfully", "Sucessfully joined Project " + this.invitation.getName(), Type.HUMANIZED_MESSAGE);
this.getUi().push();
closeHandler.close();
}
}
Aggregations