首页 > 其他分享 >数据结构的比较层级 类似html的优先级比较

数据结构的比较层级 类似html的优先级比较

时间:2022-11-24 13:02:04浏览次数:39  
标签:数据结构 return target parentExtend else html key 优先级 null


近开发安全键盘的时候发现有一个矛盾的问题,如果都设置了边框 ,也设置了阴影的情况下,到底是要前者还是后者,这就需要比较了

/// <summary>
/// 有这么一种情况 shadowInfo 和borderinfo都设置了, 非同级别的情况下,但是级别谁来from进,就应该选谁,咋办呢? 数字越大越小等级越大
/// </summary> 返回负数 代表前者大 也就是最接近 原始等级,返回 正数代表后者大
/// <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;//不允许自动设置。
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;//不允许自动设置。
}

}
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);

}

标签:数据结构,return,target,parentExtend,else,html,key,优先级,null
From: https://blog.51cto.com/u_15458814/5883462

相关文章

  • 为什么要设置需求优先级?如何设置?
    本文将围绕以下问题展开:1、什么是需求优先级排序,目的是什么?2、优先级排序的8大依据;3、需求优先级排序面临的挑战;4、一些优秀的需求优先级排序工具。 一、什么是需求优......
  • 数据结构复习
    线性表顺序表:单链表......
  • 使用sphinx-doc优雅的书写html和项目介绍,包含restructureText常用语法
    ​​跳转到我的gitee直接下载测试项目​​​​​sphinx概述​​​​使用nginx配置静态页面展示sphinx-doc点击跳转​​系统:win10中WSL(Ubuntu18.04)编辑器:VScode插件:......
  • 用DevExpress实现基于HTML&CSS的桌面应用程序的UI(一)
    DevExpressWinForm拥有180+组件和UI库,能为WindowsForms平台创建具有影响力的业务解决方案。DevExpressWinForm能完美构建流畅、美观且易于使用的应用程序,无论是Office风......
  • HTMLDOM_样式控制事件_概述
    HTMLDOM_样式控制控制元素样式:使用元素的style属性来设置如//修改样式方式1div1.style.border="1pxsolidre......
  • python subprocess.cal调用wkhtmltohtml中遇到的问题
    最近项目中使用了wkhtmltohtml 工具,这个工具转换pdf功能非常方便。但是在python作为命令来调用时有些要注意的地方,另外还有一些和字体相关的问题要注意。一.字体问题......
  • 大前端html基础学习02
    CSS核心属性一、css属性和属性值的定义属性:属性是指定选择符所具有的属性,它是css的核心。属性值:属性值包括法定属性值及常见的数值加......
  • 数据结构(二):括号匹配(C++,栈)
    好家伙,写题,题目代码在最后 来吧,  1.栈 栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一......
  • 网页HTML
    HTMLHTMLHTML超文本标记语言,它是用来描述网页的一种语言HTML不是一种,编程语言,而是一种标记语言HTML是基本结构、style每一个标签都有属性style样式样式的语法样......
  • HTMLDOM中innerHTML和样式控制
    HTMLDOM_innerHTML标签体的设置和获取:innerHTMLinnerHTML 属性可用于获取或替换HTML元素的内容。innerHTML 属性可用于获取或改变任何HTML元素,包括 <html> 和 ......