📄 bmatrepeate.java
字号:
package net.aetherial.gis.output.toLd.bianma;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import net.aetherial.gis.surface.ItemValue;
import java.util.StringTokenizer;
import java.util.Vector;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2004</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class BmAtRepeate {
private CreateBianma cb = new CreateBianma();
public BmAtRepeate() {
}
public static boolean isGradeMore_NumberLess(String primalBianma,
String beCompareBianma) {
primalBianma = primalBianma.toUpperCase().trim();
beCompareBianma = beCompareBianma.toUpperCase().trim();
if (primalBianma.startsWith("C") &&
(beCompareBianma.startsWith("Y") || beCompareBianma.startsWith("X") ||
beCompareBianma.startsWith("S") || beCompareBianma.startsWith("G"))) {
return true;
}
else if (primalBianma.startsWith("Y") &&
(beCompareBianma.startsWith("X") || beCompareBianma.startsWith("S") ||
beCompareBianma.startsWith("G"))) {
return true;
}
else if (primalBianma.startsWith("X") &&
(beCompareBianma.startsWith("S") || beCompareBianma.startsWith("G"))) {
return true;
}
else if (primalBianma.startsWith("S") && beCompareBianma.startsWith("G")) {
return true;
}
else {
long pnum = 0;
long bnum = 0;
try {
pnum = Long.parseLong(primalBianma.substring(1, 4));
bnum = Long.parseLong(beCompareBianma.substring(1, 4));
}
catch (NumberFormatException ex) {
}
if (pnum > bnum) {
return true;
}
else {
return false;
}
}
}
/**
* 将指定的航迹顺序编码
*/
public void initBianmaAppointment(Node[] trks) {
this.initBianmaIncludeRepeat(trks);
}
/**
* 将指定的航迹顺序编码
*/
public void initBianmaAppointment(Vector trks) {
Node[] temp = new Node[trks.size()];
trks.copyInto(temp);
this.initBianmaIncludeRepeat(temp);
}
/**
* 初始化编码,包括其中有编码不能改动的可能
*/
private void initBianmaIncludeRepeat(Node[] trks) {
String temp = "";
for (int i = 0; trks != null && i < trks.length; i++) {
if (!cb.isTrackHasBeenBM(trks[i])) {
temp = cb.getSameLxsLxLdNewNumber(trks[i]);
ItemValue.setTracks_ld_Number(trks[i],
temp);
// System.out.println(ItemValue.getTracksName(trks[i]) + temp);
}
}
// System.exit(0);
}
/**
* S228||002||S228||001
*/
public void correctRepeateBianma(Node trk, Node ref) throws Exception{
String temp = cb.getSameLxsLxLdNewNumber(ref);
String trkLdbm = ItemValue.getTracks_ld_original_number(trk);
StringTokenizer st = new StringTokenizer(trkLdbm, "||");
st.nextToken();
st.nextToken();
String newBianma = temp + "||" + st.nextToken() + "||" + st.nextToken();
ItemValue.setTracks_ld_Number(trk, newBianma);
}
public void setTrkRepeatTo(Node source, Node target) {
if (!cb.isTrackHasBeenBM(target)) {
ItemValue.setTracks_ld_Number(target, cb.getSameLxsLxLdNewNumber(target));
}
if (!cb.isTrackHasBeenBM(source)) {
ItemValue.setTracks_ld_Number(source, cb.getSameLxsLxLdNewNumber(source));
}
// String s_number = ItemValue.getTracksNumber(source);
// String t_number = ItemValue.getTracksNumber(target);
// if (this.isGradeMore_NumberLess(s_number, t_number)) {
// cb.setBMToRepeatLD(source, target);
// }
// else {
// cb.setBMToRepeatLD(target, source);
// }
cb.setBMToRepeatLD(source, target);
}
public void clearLdBianmaAtCut(Node trk) {
ItemValue.setTracks_ld_Number(trk, "");
}
public boolean isTrkCanBeCut(Node trk) {
return cb.isTrackCanBeCut(trk);
}
/**
* 运用在没有进行任何操作时设置编码
*/
public void initBianmaAtFree() {
Node[] trks = ItemValue.getTracks();
cb.initBM(trks);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -