Search in sources :

Example 6 with HorizontalFlexLayout

use of de.catma.ui.layout.HorizontalFlexLayout 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);
}
Also used : FlexLayout(de.catma.ui.layout.FlexLayout) ProjectManager(de.catma.project.ProjectManager) RouteToProjectEvent(de.catma.ui.events.routing.RouteToProjectEvent) UI(com.vaadin.ui.UI) VerticalFlexLayout(de.catma.ui.layout.VerticalFlexLayout) RBACConstraint(de.catma.rbac.RBACConstraint) IOException(java.io.IOException) ConfirmDialog(org.vaadin.dialogs.ConfirmDialog) CssLayout(com.vaadin.ui.CssLayout) RBACRole(de.catma.rbac.RBACRole) ProjectReference(de.catma.project.ProjectReference) Objects(java.util.Objects) EventBus(com.google.common.eventbus.EventBus) HorizontalFlexLayout(de.catma.ui.layout.HorizontalFlexLayout) ErrorHandler(de.catma.ui.module.main.ErrorHandler) Label(com.vaadin.ui.Label) IRBACManager(de.catma.rbac.IRBACManager) RBACConstraintEnforcer(de.catma.rbac.RBACConstraintEnforcer) VaadinIcons(com.vaadin.icons.VaadinIcons) IconButton(de.catma.ui.component.IconButton) RBACPermission(de.catma.rbac.RBACPermission) ProjectChangedEvent(de.catma.ui.events.ProjectChangedEvent) CssLayout(com.vaadin.ui.CssLayout) IconButton(de.catma.ui.component.IconButton) Label(com.vaadin.ui.Label) IOException(java.io.IOException) HorizontalFlexLayout(de.catma.ui.layout.HorizontalFlexLayout) IOException(java.io.IOException) ProjectChangedEvent(de.catma.ui.events.ProjectChangedEvent)

Example 7 with HorizontalFlexLayout

use of de.catma.ui.layout.HorizontalFlexLayout 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);
}
Also used : Objects(java.util.Objects) EventBus(com.google.common.eventbus.EventBus) FlexLayout(de.catma.ui.layout.FlexLayout) ProjectManager(de.catma.project.ProjectManager) HorizontalFlexLayout(de.catma.ui.layout.HorizontalFlexLayout) Label(com.vaadin.ui.Label) VerticalFlexLayout(de.catma.ui.layout.VerticalFlexLayout) CssLayout(com.vaadin.ui.CssLayout) ProjectChangedEvent(de.catma.ui.events.ProjectChangedEvent) CssLayout(com.vaadin.ui.CssLayout) Label(com.vaadin.ui.Label) HorizontalFlexLayout(de.catma.ui.layout.HorizontalFlexLayout) ProjectChangedEvent(de.catma.ui.events.ProjectChangedEvent)

Example 8 with HorizontalFlexLayout

use of de.catma.ui.layout.HorizontalFlexLayout in project catma by forTEXT.

the class ProjectView method initTeamContent.

private Component initTeamContent() {
    HorizontalFlexLayout teamContent = new HorizontalFlexLayout();
    teamGrid = new Grid<>();
    teamGrid.setHeaderVisible(false);
    // $NON-NLS-1$
    teamGrid.setWidth("402px");
    teamGrid.addColumn((user) -> VaadinIcons.USER.getHtml(), new HtmlRenderer());
    teamGrid.addColumn(User::getName).setWidth(200).setComparator((r1, r2) -> String.CASE_INSENSITIVE_ORDER.compare(r1.getName(), r2.getName())).setDescriptionGenerator(User::preciseName);
    teamGrid.addColumn(Member::getRole).setExpandRatio(1);
    Label membersAnnotations = new Label("Members");
    ActionGridComponent<Grid<Member>> membersGridComponent = new ActionGridComponent<>(membersAnnotations, teamGrid);
    // $NON-NLS-1$
    membersGridComponent.addStyleName("project-view-action-grid");
    ContextMenu addContextMenu = membersGridComponent.getActionGridBar().getBtnAddContextMenu();
    addContextMenu.addItem("Add Member", (click) -> new AddMemberDialog(project::assignOnProject, // $NON-NLS-1$
    (query) -> project.findUser(query.getFilter().isPresent() ? query.getFilter().get() : "", query.getOffset(), query.getLimit()), (evt) -> eventBus.post(new MembersChangedEvent())).show());
    ContextMenu moreOptionsContextMenu = membersGridComponent.getActionGridBar().getBtnMoreOptionsContextMenu();
    moreOptionsContextMenu.addItem("Edit Members", (click) -> handleEditMembers());
    moreOptionsContextMenu.addItem("Remove Members", (click) -> handleRemoveMembers());
    miInvite = moreOptionsContextMenu.addItem("Invite someone to the Project", click -> handleProjectInvitationRequest());
    MenuItem editResBtn = moreOptionsContextMenu.addItem("Resource permissions", click -> {
        @SuppressWarnings("unchecked") TreeDataProvider<Resource> resourceDataProvider = (TreeDataProvider<Resource>) documentGrid.getDataProvider();
        TreeData<Resource> resourceData = resourceDataProvider.getTreeData();
        if (!resourceData.getRootItems().isEmpty()) {
            new ResourcePermissionView(resourceData, tagsetData.getItems(), this.project).show();
        } else {
            Notification.show("Info", "You do not have any Documents yet, please add a Document first!", Type.HUMANIZED_MESSAGE);
        }
    });
    editResBtn.setEnabled(false);
    rbacEnforcer.register(RBACConstraint.ifAuthorized(role -> (project.hasPermission(role, RBACPermission.PROJECT_MEMBERS_EDIT)), () -> editResBtn.setEnabled(true)));
    teamContent.addComponent(membersGridComponent);
    return teamContent;
}
Also used : ArrayListMultimap(com.google.common.collect.ArrayListMultimap) BackgroundServiceProvider(de.catma.backgroundservice.BackgroundServiceProvider) HTMLNotification(de.catma.ui.component.HTMLNotification) Alignment(com.vaadin.ui.Alignment) IndexedProject(de.catma.indexer.IndexedProject) MembersChangedEvent(de.catma.ui.events.MembersChangedEvent) HeaderContextChangeEvent(de.catma.ui.events.HeaderContextChangeEvent) RouteToTagsEvent(de.catma.ui.events.routing.RouteToTagsEvent) TreeDataProvider(com.vaadin.data.provider.TreeDataProvider) TagsetImport(de.catma.ui.module.project.documentwizard.TagsetImport) DocumentChangeEvent(de.catma.project.event.DocumentChangeEvent) CorpusImporter(de.catma.ui.module.project.corpusimport.CorpusImporter) CommitInfo(de.catma.project.CommitInfo) ExecutionListener(de.catma.backgroundservice.ExecutionListener) MenuBar(com.vaadin.ui.MenuBar) VerticalFlexLayout(de.catma.ui.layout.VerticalFlexLayout) Set(java.util.Set) RBACConstraint(de.catma.rbac.RBACConstraint) TagInstance(de.catma.tag.TagInstance) CorpusImportDocumentMetadata(de.catma.ui.module.project.corpusimport.CorpusImportDocumentMetadata) ItemClick(com.vaadin.ui.Grid.ItemClick) Stream(java.util.stream.Stream) Type(com.vaadin.ui.Notification.Type) PropertyChangeListener(java.beans.PropertyChangeListener) SingleTextInputDialog(de.catma.ui.dialog.SingleTextInputDialog) CollectionChangeEvent(de.catma.project.event.CollectionChangeEvent) CanReloadAll(de.catma.ui.module.main.CanReloadAll) SelectionMode(com.vaadin.ui.Grid.SelectionMode) DocumentWizard(de.catma.ui.module.project.documentwizard.DocumentWizard) HugeCard(de.catma.ui.component.hugecard.HugeCard) ProjectChangedEvent(de.catma.ui.events.ProjectChangedEvent) DefaultProgressCallable(de.catma.backgroundservice.DefaultProgressCallable) TagManager(de.catma.tag.TagManager) com.vaadin.server(com.vaadin.server) LocalDateTime(java.time.LocalDateTime) WizardContext(de.catma.ui.dialog.wizard.WizardContext) ActionGridComponent(de.catma.ui.component.actiongrid.ActionGridComponent) ArrayList(java.util.ArrayList) Member(de.catma.user.Member) Pair(de.catma.util.Pair) TreeGridFactory(de.catma.ui.component.TreeGridFactory) SaveCancelListener(de.catma.ui.dialog.SaveCancelListener) Collator(java.text.Collator) ProgressListener(de.catma.backgroundservice.ProgressListener) XML2ContentHandler(de.catma.document.source.contenthandler.XML2ContentHandler) Property(de.catma.tag.Property) TreeData(com.vaadin.data.TreeData) IOException(java.io.IOException) SourceDocument(de.catma.document.source.SourceDocument) ProjectReadyEvent(de.catma.project.event.ProjectReadyEvent) AnnotationCollection(de.catma.document.annotation.AnnotationCollection) File(java.io.File) TagManagerEvent(de.catma.tag.TagManager.TagManagerEvent) Button(com.vaadin.ui.Button) ChangeType(de.catma.project.event.ChangeType) CRC32(java.util.zip.CRC32) HtmlRenderer(com.vaadin.ui.renderers.HtmlRenderer) Grid(com.vaadin.ui.Grid) MenuItem(com.vaadin.ui.MenuBar.MenuItem) GenericUploadDialog(de.catma.ui.dialog.GenericUploadDialog) URISyntaxException(java.net.URISyntaxException) UI(com.vaadin.ui.UI) FlexWrap(de.catma.ui.layout.FlexLayout.FlexWrap) ConfirmDialog(org.vaadin.dialogs.ConfirmDialog) SearchFilterProvider(de.catma.ui.component.actiongrid.SearchFilterProvider) RouteToAnalyzeEvent(de.catma.ui.events.routing.RouteToAnalyzeEvent) TikaContentHandler(de.catma.document.source.contenthandler.TikaContentHandler) ByteArrayInputStream(java.io.ByteArrayInputStream) HorizontalFlexLayout(de.catma.ui.layout.HorizontalFlexLayout) ErrorHandler(de.catma.ui.module.main.ErrorHandler) Locale(java.util.Locale) CatmaApplication(de.catma.ui.CatmaApplication) VaadinIcons(com.vaadin.icons.VaadinIcons) Version(de.catma.tag.Version) RouteToConflictedProjectEvent(de.catma.ui.events.routing.RouteToConflictedProjectEvent) ProgressBar(com.vaadin.ui.ProgressBar) IconButton(de.catma.ui.component.IconButton) CATMAPropertyKey(de.catma.properties.CATMAPropertyKey) Collection(java.util.Collection) TreeGrid(com.vaadin.ui.TreeGrid) Logger(java.util.logging.Logger) Collectors(java.util.stream.Collectors) SourceDocumentInfo(de.catma.document.source.SourceDocumentInfo) ProjectReference(de.catma.project.ProjectReference) TagReference(de.catma.document.annotation.TagReference) List(java.util.List) CloseSafe(de.catma.util.CloseSafe) Corpus(de.catma.document.corpus.Corpus) TagDefinition(de.catma.tag.TagDefinition) RBACConstraintEnforcer(de.catma.rbac.RBACConstraintEnforcer) RouteToAnnotateEvent(de.catma.ui.events.routing.RouteToAnnotateEvent) Optional(java.util.Optional) FileType(de.catma.document.source.FileType) RBACPermission(de.catma.rbac.RBACPermission) CorpusImportDialog(de.catma.ui.module.project.corpusimport.CorpusImportDialog) ProjectManager(de.catma.project.ProjectManager) PropertyDefinition(de.catma.tag.PropertyDefinition) UploadFile(de.catma.ui.module.project.documentwizard.UploadFile) RBACRole(de.catma.rbac.RBACRole) Multimap(com.google.common.collect.Multimap) Function(java.util.function.Function) User(de.catma.user.User) Level(java.util.logging.Level) HashSet(java.util.HashSet) EventBus(com.google.common.eventbus.EventBus) Charset(java.nio.charset.Charset) Notification(com.vaadin.ui.Notification) Label(com.vaadin.ui.Label) TagsetDefinition(de.catma.tag.TagsetDefinition) IDGenerator(de.catma.util.IDGenerator) Subscribe(com.google.common.eventbus.Subscribe) TagLibrary(de.catma.tag.TagLibrary) PropertyChangeEvent(java.beans.PropertyChangeEvent) OpenProjectListener(de.catma.project.OpenProjectListener) ListDataProvider(com.vaadin.data.provider.ListDataProvider) FileOSType(de.catma.document.source.FileOSType) ClickEvent(com.vaadin.ui.Button.ClickEvent) AnnotationCollectionReference(de.catma.document.annotation.AnnotationCollectionReference) Project(de.catma.project.Project) RepositoryChangeEvent(de.catma.project.Project.RepositoryChangeEvent) ConflictedProject(de.catma.project.conflict.ConflictedProject) TagsetDefinitionImportStatus(de.catma.serialization.TagsetDefinitionImportStatus) ContextMenu(com.vaadin.contextmenu.ContextMenu) SourceContentHandler(de.catma.document.source.contenthandler.SourceContentHandler) TagsetImportState(de.catma.ui.module.project.documentwizard.TagsetImportState) BOMFilterInputStream(de.catma.document.source.contenthandler.BOMFilterInputStream) DateTimeFormatter(java.time.format.DateTimeFormatter) HierarchicalQuery(com.vaadin.data.provider.HierarchicalQuery) Parameter(de.catma.ui.Parameter) Comparator(java.util.Comparator) Collections(java.util.Collections) BackgroundService(de.catma.backgroundservice.BackgroundService) InputStream(java.io.InputStream) Component(com.vaadin.ui.Component) User(de.catma.user.User) Grid(com.vaadin.ui.Grid) TreeGrid(com.vaadin.ui.TreeGrid) Label(com.vaadin.ui.Label) ContextMenu(com.vaadin.contextmenu.ContextMenu) MenuItem(com.vaadin.ui.MenuBar.MenuItem) TreeDataProvider(com.vaadin.data.provider.TreeDataProvider) HtmlRenderer(com.vaadin.ui.renderers.HtmlRenderer) ActionGridComponent(de.catma.ui.component.actiongrid.ActionGridComponent) HorizontalFlexLayout(de.catma.ui.layout.HorizontalFlexLayout) MembersChangedEvent(de.catma.ui.events.MembersChangedEvent)

Aggregations

Label (com.vaadin.ui.Label)8 HorizontalFlexLayout (de.catma.ui.layout.HorizontalFlexLayout)7 IconButton (de.catma.ui.component.IconButton)5 VerticalFlexLayout (de.catma.ui.layout.VerticalFlexLayout)5 EventBus (com.google.common.eventbus.EventBus)4 VaadinIcons (com.vaadin.icons.VaadinIcons)3 Button (com.vaadin.ui.Button)3 CssLayout (com.vaadin.ui.CssLayout)3 ProgressBar (com.vaadin.ui.ProgressBar)3 UI (com.vaadin.ui.UI)3 ProjectManager (de.catma.project.ProjectManager)3 ProjectChangedEvent (de.catma.ui.events.ProjectChangedEvent)3 ArrayListMultimap (com.google.common.collect.ArrayListMultimap)2 Multimap (com.google.common.collect.Multimap)2 Subscribe (com.google.common.eventbus.Subscribe)2 ContextMenu (com.vaadin.contextmenu.ContextMenu)2 TreeData (com.vaadin.data.TreeData)2 HierarchicalQuery (com.vaadin.data.provider.HierarchicalQuery)2 ListDataProvider (com.vaadin.data.provider.ListDataProvider)2 TreeDataProvider (com.vaadin.data.provider.TreeDataProvider)2