近開(kāi)發(fā)安全鍵盤的時(shí)候發(fā)現(xiàn)有一個(gè)矛盾的問(wèn)題,如果都設(shè)置了邊框 谢谦,也設(shè)置了陰影的情況下孩饼,到底是要前者還是后者,這就需要比較了
/// <summary>
/// 有這么一種情況 shadowInfo 和borderinfo都設(shè)置了才写, 非同級(jí)別的情況下葡兑,但是級(jí)別誰(shuí)來(lái)from進(jìn)奖蔓,就應(yīng)該選誰(shuí),咋辦呢讹堤? 數(shù)字越大越小等級(jí)越大
/// </summary> 返回負(fù)數(shù) 代表前者大 也就是最接近 原始等級(jí)吆鹤,返回 正數(shù)代表后者大
/// <param name="node1From"></param>
/// <param name="nodeFirst"></param>
/// <param name="nodeSecond"></param>
public static int levelCompare(INode nodeFrom, INode nodeFirst, INode nodeSecond)
{
INode currentNode = nodeFrom;
int nodeLevelFirst = 0;
int nodeLevelSecond = 0;
bool firstHasFound = false;
bool secondHasFound = false;
while (currentNode != null)
{
if (nodeFirst == currentNode)
{
firstHasFound = true;
} else {
nodeLevelFirst++;
}
if (nodeSecond == currentNode) {
secondHasFound = true;
} else {
nodeLevelSecond++;
}
if (firstHasFound && secondHasFound)
{
break;
}
currentNode = nodeFrom.getParent();
}
return nodeLevelFirst = nodeLevelSecond;
}
代碼2
public JObjectTarget<ShadowInfo> getShadowInfoTarget()
{
string key = "shadow";
if (!JSONUtil.jsonKeyIsExist(jObject, key))
{
parentExtend = getParentKey();
if (parentExtend != null)
{
JObjectTarget<ShadowInfo> target = parentExtend.getShadowInfoTarget();
if (target == null)
{
return null;
}
target.setNode(parentExtend);
return target;
}
else
{
//jObject[key] = JSONCreateUtil.createShadowInfo();
//JObjectTarget<ShadowInfo> target = EntryFactory.createJObjectTarget<ShadowInfo>(jObject, key);
//target.setNode(parentExtend);
//return target;//不允許自動(dòng)設(shè)置。
return null;
}
}
else
{
JObjectTarget<ShadowInfo> target = EntryFactory.createJObjectTarget<ShadowInfo>(jObject, key);
target.setNode(this);
return target;
}
}
public JObjectTarget<BorderInfo> getBorderInfoTarget()
{
string key = "border";
if (!JSONUtil.jsonKeyIsExist(jObject, key))
{
parentExtend = getParentKey();
if (parentExtend != null)
{
JObjectTarget<BorderInfo> target = parentExtend.getBorderInfoTarget();
if (target == null)
{
return null;
}
target.setNode(parentExtend);
return target;
}
else
{
//jObject[key] = JSONCreateUtil.createShadowInfo();
//JObjectTarget<BorderInfo> target = EntryFactory.createJObjectTarget<BorderInfo>(jObject, key);
//target.setNode(parentExtend);
//return target;
return null;//不允許自動(dòng)設(shè)置洲守。
}
}
else
{
JObjectTarget<BorderInfo> target = EntryFactory.createJObjectTarget<BorderInfo>(jObject, key);
target.setNode(this);
return target;
}
}
代碼三
ShadowInfo shadowInfo = objKey.getShadowInfo();
BorderInfo borderInfo = objKey.getBorderInfo();
int useBorderFlag = -1;
if (shadowInfo == null && borderInfo == null)
{
useBorderFlag = -1;
}
else if (shadowInfo != null && borderInfo != null)
{
if (ViewUtil.levelCompare(objKey, shadowInfo.node, borderInfo.node) <= 0)
{
useBorderFlag = 0;
}
else
{
useBorderFlag = 1;
}
}
else if (shadowInfo == null)
{
useBorderFlag = 1;
}
else if (borderInfo == null)
{
useBorderFlag = 0;
}
if (useBorderFlag == 0)
{
//TODO
keyButton.FlatAppearance.BorderSize = 0;
}
else if (useBorderFlag == 1)
{
keyButton.FlatAppearance.BorderSize = borderInfo.getSize().getIntValue();
string borderColor = objKey.getFontColorTarget().getStringValue("#ff0000");
keyButton.FlatAppearance.BorderColor = AppUtil.parseColor(borderColor);
}