Skip to content

Commit 1aa3ded

Browse files
committed
removed dnd bug
1 parent c228f39 commit 1aa3ded

File tree

3 files changed

+19
-13
lines changed

3 files changed

+19
-13
lines changed

src/main/java/backend_data/Header.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,8 @@ public int getTotalSubTreeCount() {
349349
* @return true means, the this Element is a parent, false means its not a parent.
350350
*/
351351
public boolean isHeaderInParentHeader(Header targetHeader){
352-
if(targetHeader.isRoot) return false;
352+
if(targetHeader.parentElement == null) return false;
353+
if(targetHeader.parentElement.isRoot) return false;
353354
if(targetHeader.parentElement == this) return true;
354355
return this.isHeaderInParentHeader(targetHeader.parentElement);
355356
}

src/main/java/visual_components/header/HeaderComponent.java

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import javax.swing.JLabel;
44
import javax.swing.JMenuItem;
5+
import javax.swing.JOptionPane;
56
import javax.swing.JPanel;
67

78
import main.java.backend_data.Direction;
@@ -959,12 +960,13 @@ private void removeDnDTargetElements() {
959960
private void moveHeaderUp(HeaderComponent sourceHeaderComponent) {
960961
Header targetParent = connectedHeader.getParentElement();
961962
Header sourceParent = sourceHeaderComponent.connectedHeader.getParentElement();
962-
// Backend
963-
// remove from source
964-
sourceParent.deleteSubheader(sourceHeaderComponent.connectedHeader);
965-
int newNr = connectedHeader.getOwnNr();
966963

964+
967965
if (isShiftingAllowed(sourceHeaderComponent.connectedHeader)) {
966+
// Backend
967+
// remove from source
968+
sourceParent.deleteSubheader(sourceHeaderComponent.connectedHeader);
969+
int newNr = connectedHeader.getOwnNr();
968970
// Insert Start
969971
if (newNr == 1) {
970972
targetParent.insertNewSubheaderStart(sourceHeaderComponent.connectedHeader);
@@ -976,8 +978,8 @@ private void moveHeaderUp(HeaderComponent sourceHeaderComponent) {
976978
assert sourceHeaderComponent.connectedHeader.getOwnNr() == newNr;
977979
}
978980
assert connectedHeader.getParentElement().equals(targetParent);
979-
reloadComponents();
980981
}
982+
reloadComponents();
981983

982984
}
983985

@@ -991,11 +993,12 @@ private void moveHeaderUp(HeaderComponent sourceHeaderComponent) {
991993
private void moveHeaderDown(HeaderComponent sourceHeaderComponent) {
992994
Header targetParent = connectedHeader.getParentElement();
993995
Header sourceParent = sourceHeaderComponent.connectedHeader.getParentElement();
994-
// remove from source
995-
sourceParent.deleteSubheader(sourceHeaderComponent.connectedHeader);
996-
int newNr = connectedHeader.getOwnNr();
996+
997997

998998
if (isShiftingAllowed(sourceHeaderComponent.connectedHeader)) {
999+
// remove from source
1000+
sourceParent.deleteSubheader(sourceHeaderComponent.connectedHeader);
1001+
int newNr = connectedHeader.getOwnNr();
9991002
// Insert at End
10001003
if (newNr > targetParent.getSubheaderSize()) {
10011004
targetParent.insertNewSubheaderEnd(sourceHeaderComponent.connectedHeader);
@@ -1007,8 +1010,8 @@ private void moveHeaderDown(HeaderComponent sourceHeaderComponent) {
10071010
assert sourceHeaderComponent.connectedHeader.getOwnNr() == newNr + 1;
10081011
}
10091012
assert connectedHeader.getParentElement().equals(targetParent);
1010-
reloadComponents();
10111013
}
1014+
reloadComponents();
10121015
}
10131016

10141017
/**
@@ -1024,9 +1027,9 @@ private void moveHeaderSub(HeaderComponent sourceHeaderComponent) {
10241027
if (isShiftingAllowed(sourceHeaderComponent.connectedHeader)) {
10251028
sourceParent.deleteSubheader(sourceHeaderComponent.connectedHeader);
10261029
connectedHeader.insertNewSubheaderStart(sourceHeaderComponent.connectedHeader);
1027-
assert connectedHeader.getParentElement().equals(connectedHeader);
1028-
reloadComponents();
1030+
assert connectedHeader.getParentElement().equals(connectedHeader);
10291031
}
1032+
reloadComponents();
10301033
}
10311034

10321035
/**
@@ -1039,8 +1042,10 @@ private void moveHeaderSub(HeaderComponent sourceHeaderComponent) {
10391042
* @return true= shifting allowed | false = shifting is not allowed.
10401043
*/
10411044
private boolean isShiftingAllowed(Header sourceHeader) {
1042-
if (connectedHeader == sourceHeader || sourceHeader.isHeaderInParentHeader(connectedHeader))
1045+
if (connectedHeader == sourceHeader || sourceHeader.isHeaderInParentHeader(connectedHeader)) {
1046+
JOptionPane.showMessageDialog(null,"Actions from header to subheader are not allowed.");
10431047
return false;
1048+
}
10441049
else
10451050
return true;
10461051
}

src/main/resources/appIcon.png

3.8 KB
Loading

0 commit comments

Comments
 (0)