package org.xmind.ui.internal.branch;
import static org.xmind.ui.internal.branch.BaseRadialStructure.CACHE_NUMBER_RIGHT_BRANCHES;
import org.xmind.core.ITopicExtension;
import org.xmind.core.ITopicExtensionElement;
import org.xmind.ui.mindmap.IBranchPart;
import org.xmind.ui.util.MindMapUtils;
public class UnbalancedData extends RadialData {
public final static String STRUCTUREID_UNBALANCED = "org.xmind.ui.map.unbalanced"; //$NON-NLS-1$
public final static String EXTENTION_UNBALANCEDSTRUCTURE = "org.xmind.ui.map.unbalanced"; //$NON-NLS-1$
public final static String EXTENTIONELEMENT_RIGHTNUMBER = "right-number";//$NON-NLS-1$
public UnbalancedData(IBranchPart branch) {
super(branch);
}
@Override
public int getNumRight() {
IBranchPart branch = getBranch();
Integer num = (Integer) MindMapUtils.getCache(branch,
CACHE_NUMBER_RIGHT_BRANCHES);
if (num != null)
return num.intValue();
ITopicExtension extension = branch.getTopic()
.getExtension(EXTENTION_UNBALANCEDSTRUCTURE);
if (extension == null)
return super.getNumRight();
ITopicExtensionElement element = extension.getContent()
.getCreatedChild(EXTENTIONELEMENT_RIGHTNUMBER);
String rightNum = element.getTextContent();
if (rightNum != null) {
int value = Integer.valueOf(rightNum).intValue();
if (value < 0) {
int superRightNum = super.getNumRight();
element.setTextContent(String.valueOf(superRightNum));
return superRightNum;
}
return value;
} else {
int superRightNum = super.getNumRight();
element.setTextContent(String.valueOf(superRightNum));
return superRightNum;
}
}
}