Dieser Commit ist enthalten in:
Ursprung
9be20fd60d
Commit
9fd44392e1
@ -89,6 +89,12 @@ public class SchematicSelector {
|
|||||||
injectable.onSelectorOpen(this, SchematicSelectorInjectable.OpenFrom.REOPEN);
|
injectable.onSelectorOpen(this, SchematicSelectorInjectable.OpenFrom.REOPEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void reOpenDirUp() {
|
||||||
|
depth--;
|
||||||
|
openList(dirUp(lastParent));
|
||||||
|
injectable.onSelectorOpen(this, SchematicSelectorInjectable.OpenFrom.REOPEN);
|
||||||
|
}
|
||||||
|
|
||||||
private void openList(SchematicNode parent) {
|
private void openList(SchematicNode parent) {
|
||||||
lastParent = parent;
|
lastParent = parent;
|
||||||
List<SchematicNode> nodes = applySorting(filter.isFilter()?getFilteredSchematics():getSchematicList(parent));
|
List<SchematicNode> nodes = applySorting(filter.isFilter()?getFilteredSchematics():getSchematicList(parent));
|
||||||
@ -150,34 +156,38 @@ public class SchematicSelector {
|
|||||||
inv.open();
|
inv.open();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private SchematicNode dirUp(SchematicNode parent) {
|
||||||
|
if(!singleDirOpen) {
|
||||||
|
if(NodeMember.getNodeMember(parent.getId(), user.getId()) != null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return getParent(parent);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
SchematicNode currentParent = parent;
|
||||||
|
boolean isMember = false;
|
||||||
|
do {
|
||||||
|
sdoTrigger = false;
|
||||||
|
if(NodeMember.getNodeMember(currentParent.getId(), user.getId()) != null) {
|
||||||
|
isMember = true;
|
||||||
|
}
|
||||||
|
currentParent = getParent(currentParent);
|
||||||
|
if(currentParent == null)
|
||||||
|
break;
|
||||||
|
getSchematicList(currentParent);
|
||||||
|
} while (sdoTrigger);
|
||||||
|
if(isMember || NodeMember.getNodeMember(parent.getId(), user.getId()) != null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
return currentParent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void handleClick(SchematicNode node, SchematicNode parent) {
|
private void handleClick(SchematicNode node, SchematicNode parent) {
|
||||||
if(node == null) {
|
if(node == null) {
|
||||||
depth--;
|
depth--;
|
||||||
if(!singleDirOpen) {
|
openList(dirUp(parent));
|
||||||
if(NodeMember.getNodeMember(parent.getId(), user.getId()) != null) {
|
|
||||||
openList(null);
|
|
||||||
} else {
|
|
||||||
openList(getParent(parent));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
SchematicNode currentParent = parent;
|
|
||||||
boolean isMember = false;
|
|
||||||
do {
|
|
||||||
sdoTrigger = false;
|
|
||||||
if(NodeMember.getNodeMember(currentParent.getId(), user.getId()) != null) {
|
|
||||||
isMember = true;
|
|
||||||
}
|
|
||||||
currentParent = getParent(currentParent);
|
|
||||||
if(currentParent == null)
|
|
||||||
break;
|
|
||||||
getSchematicList(currentParent);
|
|
||||||
} while (sdoTrigger);
|
|
||||||
if(isMember || NodeMember.getNodeMember(parent.getId(), user.getId()) != null) {
|
|
||||||
openList(null);
|
|
||||||
} else {
|
|
||||||
openList(currentParent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(node.isDir()) {
|
if(node.isDir()) {
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren