use of de.catma.tag.TagsetDefinition in project catma by forTEXT.
the class ProjectView method handleTagsetClick.
private void handleTagsetClick(ItemClick<TagsetDefinition> itemClickEvent) {
if (itemClickEvent.getMouseEventDetails().isDoubleClick()) {
TagsetDefinition tagset = itemClickEvent.getItem();
eventBus.post(new RouteToTagsEvent(project, tagset));
}
}
use of de.catma.tag.TagsetDefinition in project catma by forTEXT.
the class TagSelectionPanel method handleAddSubtagRequest.
private void handleAddSubtagRequest() {
final List<TagDefinition> parentTags = tagsetGrid.getSelectedItems().stream().filter(tagsetTreeItem -> tagsetTreeItem instanceof TagDataItem).map(tagsetTreeItem -> ((TagDataItem) tagsetTreeItem).getTag()).collect(Collectors.toList());
for (TagDefinition parentTag : parentTags) {
if (!project.hasPermission(project.getRoleForTagset(parentTag.getTagsetDefinitionUuid()), RBACPermission.TAGSET_WRITE)) {
Notification.show("Info", String.format("You do not have the permission to make changes to the Tagset of Tag %1$s, " + "Please contact the Project maintainer!", parentTag.getName()), Type.HUMANIZED_MESSAGE);
return;
}
}
if (!parentTags.isEmpty()) {
AddSubtagDialog addTagDialog = new AddSubtagDialog(new SaveCancelListener<TagDefinition>() {
public void savePressed(TagDefinition result) {
for (TagDefinition parent : parentTags) {
TagsetDefinition tagset = project.getTagManager().getTagLibrary().getTagsetDefinition(parent);
TagDefinition tag = new TagDefinition(result);
tag.setUuid(idGenerator.generate());
tag.setParentUuid(parent.getUuid());
tag.setTagsetDefinitionUuid(tagset.getUuid());
project.getTagManager().addTagDefinition(tagset, tag);
}
}
});
addTagDialog.show();
} else {
Notification.show("Info", "Please select at least one parent Tag!", Type.HUMANIZED_MESSAGE);
}
}
use of de.catma.tag.TagsetDefinition in project catma by forTEXT.
the class TagsView method initListeners.
private void initListeners() {
tagChangedListener = new PropertyChangeListener() {
@SuppressWarnings("unchecked")
@Override
public void propertyChange(PropertyChangeEvent evt) {
Object newValue = evt.getNewValue();
Object oldValue = evt.getOldValue();
if (oldValue == null) {
// created
Pair<TagsetDefinition, TagDefinition> value = (Pair<TagsetDefinition, TagDefinition>) newValue;
TagsetDefinition tagset = value.getFirst();
TagDefinition tag = value.getSecond();
if (tag.getParentUuid().isEmpty()) {
tagsetData.getRootItems().stream().map(tagsetTreeItem -> (TagsetDataItem) tagsetTreeItem).filter(tagsetDataItem -> tagsetDataItem.getTagset().getUuid().equals(tagset.getUuid())).findFirst().ifPresent(tagsetDataItem -> {
TagDataItem tagDataItem = new TagDataItem(tag, tagsetDataItem.isEditable());
if (!tagsetData.contains(tagDataItem)) {
tagsetData.addItem(tagsetDataItem, tagDataItem);
tagsetDataProvider.refreshAll();
tagsetGrid.expand(tagsetDataItem);
}
});
} else {
tagsetData.getRootItems().stream().map(tagsetTreeItem -> (TagsetDataItem) tagsetTreeItem).filter(tagsetDataItem -> tagsetDataItem.getTagset().getUuid().equals(tagset.getUuid())).findFirst().ifPresent(tagsetDataItem -> {
TagDataItem tagDataItem = new TagDataItem(tag, tagsetDataItem.isEditable());
if (!tagsetData.contains(tagDataItem)) {
TagDefinition parentTag = project.getTagManager().getTagLibrary().getTagDefinition(tag.getParentUuid());
TagsetTreeItem parentTagItem = new TagDataItem(parentTag, tagsetDataItem.isEditable());
tagsetData.addItem(parentTagItem, tagDataItem);
tagsetDataProvider.refreshAll();
tagsetGrid.expand(parentTagItem);
}
});
}
} else if (newValue == null) {
// removed
Pair<TagsetDefinition, TagDefinition> deleted = (Pair<TagsetDefinition, TagDefinition>) oldValue;
TagDefinition deletedTag = deleted.getSecond();
tagsetData.removeItem(new TagDataItem(deletedTag, true));
tagsetDataProvider.refreshAll();
tagsetGrid.deselectAll();
} else {
// update
TagDefinition tag = (TagDefinition) newValue;
TagsetDefinition tagset = (TagsetDefinition) oldValue;
tagsetData.getRootItems().stream().map(tagsetTreeItem -> (TagsetDataItem) tagsetTreeItem).filter(tagsetDataItem -> tagsetDataItem.getTagset().getUuid().equals(tagset.getUuid())).findFirst().ifPresent(tagsetDataItem -> {
TagDataItem oldItem = new TagDataItem(tag, tagsetDataItem.isEditable());
String parentTagId = tag.getParentUuid();
TagsetTreeItem parent = tagsetDataItem;
if (!parentTagId.isEmpty()) {
parent = new TagDataItem(tagset.getTagDefinition(parentTagId), tagsetDataItem.isEditable());
}
tagsetData.removeItem(oldItem);
TagDataItem tagDataItem = new TagDataItem(tag, tagsetDataItem.isEditable());
tagDataItem.setPropertiesExpanded(true);
tagsetData.addItem(parent, tagDataItem);
addTagSubTree(tagset, tag, tagDataItem);
// TODO: sort
tagsetDataProvider.refreshAll();
showExpandedProperties(tagDataItem);
});
}
}
};
project.getTagManager().addPropertyChangeListener(TagManagerEvent.tagDefinitionChanged, tagChangedListener);
propertyDefinitionChangedListener = new PropertyChangeListener() {
@SuppressWarnings("unchecked")
@Override
public void propertyChange(PropertyChangeEvent evt) {
Object newValue = evt.getNewValue();
Object oldValue = evt.getOldValue();
TagDefinition tag = null;
if (oldValue == null) {
// created
Pair<PropertyDefinition, TagDefinition> newData = (Pair<PropertyDefinition, TagDefinition>) newValue;
tag = newData.getSecond();
} else if (newValue == null) {
// removed
Pair<PropertyDefinition, Pair<TagDefinition, TagsetDefinition>> oldData = (Pair<PropertyDefinition, Pair<TagDefinition, TagsetDefinition>>) oldValue;
tag = oldData.getSecond().getFirst();
} else {
// update
tag = (TagDefinition) oldValue;
}
TagsetTreeItem parentItem = null;
if (tag.getParentUuid().isEmpty()) {
parentItem = new TagsetDataItem(project.getTagManager().getTagLibrary().getTagsetDefinition(tag.getTagsetDefinitionUuid()));
} else {
parentItem = new TagDataItem(project.getTagManager().getTagLibrary().getTagDefinition(tag.getParentUuid()));
}
final String tagId = tag.getUuid();
tagsetData.getChildren(parentItem).stream().map(tagsetTreeItem -> (TagDataItem) tagsetTreeItem).filter(tagDataItem -> tagDataItem.getTag().getUuid().equals(tagId)).findFirst().ifPresent(tagDataItem -> {
tagDataItem.setPropertiesExpanded(false);
hideExpandedProperties(tagDataItem);
tagDataItem.setPropertiesExpanded(true);
showExpandedProperties(tagDataItem);
});
tagsetDataProvider.refreshAll();
tagsetGrid.deselectAll();
}
};
project.getTagManager().addPropertyChangeListener(TagManagerEvent.userPropertyDefinitionChanged, propertyDefinitionChangedListener);
}
use of de.catma.tag.TagsetDefinition in project catma by forTEXT.
the class TagsView method deleteTags.
void deleteTags(List<TagDefinition> targetTags) {
String msg = String.format("Are you sure you want to delete the following Tags: %1$s?", targetTags.stream().map(TagDefinition::getName).collect(Collectors.joining(",")));
ConfirmDialog.show(UI.getCurrent(), "Warning", msg, "Delete", "Cancel", dlg -> {
if (dlg.isConfirmed()) {
for (TagDefinition tag : targetTags) {
TagsetDefinition tagset = project.getTagManager().getTagLibrary().getTagsetDefinition(tag);
project.getTagManager().removeTagDefinition(tagset, tag);
}
}
});
}
use of de.catma.tag.TagsetDefinition in project catma by forTEXT.
the class TagsView method handleAddSubtagRequest.
private void handleAddSubtagRequest() {
final List<TagDefinition> parentTags = tagsetGrid.getSelectedItems().stream().filter(tagsetTreeItem -> tagsetTreeItem instanceof TagDataItem).map(tagsetTreeItem -> ((TagDataItem) tagsetTreeItem).getTag()).collect(Collectors.toList());
for (TagDefinition parentTag : parentTags) {
if (!project.hasPermission(project.getRoleForTagset(parentTag.getTagsetDefinitionUuid()), RBACPermission.TAGSET_WRITE)) {
Notification.show("Info", String.format("You do not have the permission to make changes to the Tagset of Tag %1$s, " + "Please contact the Project maintainer!", parentTag.getName()), Type.HUMANIZED_MESSAGE);
return;
}
}
if (!parentTags.isEmpty()) {
AddSubtagDialog addTagDialog = new AddSubtagDialog(new SaveCancelListener<TagDefinition>() {
public void savePressed(TagDefinition result) {
for (TagDefinition parent : parentTags) {
TagsetDefinition tagset = project.getTagManager().getTagLibrary().getTagsetDefinition(parent);
TagDefinition tag = new TagDefinition(result);
tag.setUuid(idGenerator.generate());
tag.setParentUuid(parent.getUuid());
tag.setTagsetDefinitionUuid(tagset.getUuid());
project.getTagManager().addTagDefinition(tagset, tag);
}
}
});
addTagDialog.show();
} else {
Notification.show("Info", "Please select at least one parent Tag!", Type.HUMANIZED_MESSAGE);
}
}
Aggregations