亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mynode.java

?? java 開源游戲源碼 RISK 聯(lián)機(jī)對戰(zhàn) 戰(zhàn)棋類
?? JAVA
字號:
package risk.tools.translation;

import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.TreeNode;
import javax.swing.tree.MutableTreeNode;
import java.util.Locale;
import java.util.HashMap;
import java.util.Collections;
import java.util.Comparator;
import java.util.Enumeration;

public class MyNode extends DefaultMutableTreeNode {

	private boolean hasmessage;
	private HashMap map;

	private boolean haschildren;
	private boolean needchildren;

	private boolean workneeded;

	// used when getting nodes from the plugin
	public MyNode(String name, boolean hasm, boolean hasch) {

		super(name);

		hasmessage = hasm;

		haschildren = hasch;

		setup();

	}

	// used when adding new nodes
	protected MyNode(String name, boolean a) {

		super(name);

		if (a) {
			hasmessage = true;
			map = new HashMap();
		}
		else {

			haschildren = true;

		}
	}

	private void setup() {


		if (haschildren && isLeaf() ) {

			add( new MyNode(null,false,false) );
			needchildren = true;
		}

		if (hasmessage && map==null) {

			map = new HashMap();

		}


	}

	public void removeAllChildren() {

		if (haschildren) {

			super.removeAllChildren();
			setup();

		}

	}

	public void add(MutableTreeNode newChild) {

		if (this.children!=null && this.children.contains(newChild)) { return; }

		super.add(newChild);
		Collections.sort(this.children,MessageTool.CASE_INSENSITIVE_ORDER);

	}

	public void setHasChildren(boolean b) { // only used for true for now

		haschildren = b;

	}

	public void setHasMessage(boolean b) { // only used for true for now

		hasmessage = b;
		setup();

	}

	public boolean hasMessage() {

		return hasmessage;

	}

	public boolean hasChildren() {

		return haschildren;

	}

	public boolean workNeeded() {

		return workneeded;

	}

	public void setWorkNeeded(boolean a) {

		workneeded=a;

	}

	public String reload(Mtcomm mycomm, Locale l) throws Exception {

		String m = mycomm.getMessage(this,l);
		map.put(l,m);

		return m;

	}

	public String getMessage(Mtcomm mycomm, Locale l) throws Exception {

		if (map.containsKey(l)) {

			return (String)map.get(l);

		}
		else {

			return reload(mycomm,l);
		}

	}

	public void saveMessage(Mtcomm mycomm, Locale l,String m,Locale currentlocale) throws Exception {

		mycomm.saveMessage(this,l,m);

		map.put(l,m);

		// adding bottom or removing top
		if (((m!=null && l!=null) || (m==null && l==null)) && workneeded) {
			workneeded = false;
			checkBackWorkNeeded(mycomm,currentlocale);
		}
		// adding top or removing bottom
		else if (((m!=null && l==null) || (l!=null && m==null)) && !workneeded) {

			checkBackWorkNeededSetTrue();
		}
	}

	public void checkBackWorkNeededSetTrue() {

		workneeded = true;

		MyNode parent = (MyNode)getParent();

		if (parent!=null && !parent.workNeeded()) {

			parent.checkBackWorkNeededSetTrue();

		}

	}

	public void checkBackWorkNeeded(Mtcomm mycomm,Locale currentlocale) throws Exception {

		MyNode parent = (MyNode)getParent();

		if (parent!=null) {

			mycomm.setupMissingTranslation( parent, currentlocale );

			if (!parent.workNeeded()) {

				parent.checkBackWorkNeeded(mycomm,currentlocale);

			}
		}

	}

	public void loadChildren(Mtcomm mycomm,Locale currentlocale) throws Exception {

		if (needchildren) {

			needchildren = false;

			//super.removeAllChildren();
			remove(0);

			mycomm.addChildren(this);

			if (workneeded && haschildren) {

				Enumeration en = children();

				while (en.hasMoreElements()) {

					MyNode node = (MyNode)en.nextElement();

					mycomm.setupMissingTranslation( node, currentlocale );
				}

			}

		}
	}

	/*
	 * This could maybe done better if u start at the leafs
	 * but then again that would make is slower with big open trees with little changes
	 */
	public void nodeWorkRefresh(Mtcomm mycomm,Locale currentlocale) throws Exception {


		boolean before = workneeded;

		mycomm.setupMissingTranslation( this, currentlocale );

		if (
			((before && !workneeded) || workneeded) &&
			!needchildren &&
			haschildren
		) {

			Enumeration en = children();

			while (en.hasMoreElements()) {

				MyNode node = (MyNode)en.nextElement();

				node.nodeWorkRefresh(mycomm, currentlocale);
			}

		}
	}

	public String getName() {

		TreeNode[] path = getPath();

		StringBuffer buffer = new StringBuffer();

		for (int c=1; c<path.length;c++) {

			buffer.append(path[c]);
			if (c<path.length-1) { buffer.append("."); }

		}

		return buffer.toString();

	}

	public MyNode getChild(String s) {

		if ( isLeaf() ) { return null; }

		int a = Collections.binarySearch(this.children, s, MessageTool.CASE_INSENSITIVE_ORDER);

		if (a<0) { return null; }

		return (MyNode)this.children.elementAt(a);

	}

	// this is used to update during the search if things do match

	public boolean equals(Object o) {

		MyNode no = (MyNode)o;

		if (getUserObject().equals(no.getUserObject())) {

			if ( hasMessage() && !no.hasMessage() ) {

				no.hasmessage = true;
				no.setup();

			}
			else if ( !hasMessage() && no.hasMessage() ) {

				hasmessage = true;
				setup();

			}

			if ( hasChildren() && !no.hasChildren() ) {

				no.haschildren = true;
				no.setup();

			}
			else if ( !hasChildren() && no.hasChildren() ) {

				haschildren = true;
				setup();

			}
			return true;
		}

		return false;
	}

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本美女一区二区三区视频| 久久嫩草精品久久久精品| 国产精品国模大尺度视频| 成人一区二区视频| 国产精品福利一区| 91丝袜美腿高跟国产极品老师 | 午夜视频一区二区三区| 欧美日韩亚洲国产综合| 日韩专区在线视频| 日韩女优av电影| 福利一区在线观看| 亚洲精品国产成人久久av盗摄| 欧美日韩在线播放三区| 久久超级碰视频| 日本一区二区成人在线| av中文字幕亚洲| 午夜a成v人精品| 久久久久久久久免费| 91影视在线播放| 日韩av电影免费观看高清完整版| 2017欧美狠狠色| 91麻豆国产自产在线观看| 日本在线不卡视频一二三区| 国产女同互慰高潮91漫画| 色吧成人激情小说| 久久99国产精品久久| 国产精品久久毛片| 7777女厕盗摄久久久| 成人综合婷婷国产精品久久免费| 一级日本不卡的影视| 久久新电视剧免费观看| 色婷婷激情综合| 国内精品嫩模私拍在线| 樱桃国产成人精品视频| 久久综合五月天婷婷伊人| 色综合天天做天天爱| 久久爱www久久做| 亚洲自拍另类综合| 久久久久久久综合色一本| 色94色欧美sute亚洲线路二| 精品亚洲aⅴ乱码一区二区三区| 亚洲免费观看在线观看| 亚洲精品在线免费观看视频| 欧美亚洲国产bt| 高清在线不卡av| 免费高清视频精品| 夜夜嗨av一区二区三区中文字幕| 久久久午夜精品| 91精品国产福利在线观看| 91免费精品国自产拍在线不卡| 狠狠色综合色综合网络| 五月天久久比比资源色| 亚洲欧美日韩国产综合在线 | 欧美精品一区二区久久婷婷| 在线视频综合导航| av亚洲精华国产精华精华| 久久国内精品视频| 五月天视频一区| 亚洲成人资源网| 亚洲免费观看高清完整版在线观看 | 国产91色综合久久免费分享| 免费成人在线网站| 午夜激情久久久| 亚洲第一会所有码转帖| 亚洲黄一区二区三区| 国产精品高潮呻吟久久| 日本一区免费视频| 国产欧美综合在线| 久久一二三国产| 欧美一级一区二区| 欧美精品丝袜久久久中文字幕| 91久久精品日日躁夜夜躁欧美| 99这里都是精品| www.66久久| 91天堂素人约啪| 在线视频你懂得一区| 91小视频免费看| 在线免费观看日本一区| 在线观看不卡一区| 精品视频1区2区| 在线播放日韩导航| 日韩一区二区三区高清免费看看| 欧美肥妇毛茸茸| 日韩精品一区二区三区在线播放| 日韩欧美一区二区视频| 日韩精品一区二区三区视频播放| 欧美一级在线免费| 久久久亚洲精华液精华液精华液| 国产片一区二区| 国模一区二区三区白浆| 久久99久久99| 国产成a人亚洲精品| thepron国产精品| 欧美综合一区二区| 欧美一级艳片视频免费观看| 亚洲精品在线观| 中文字幕一区日韩精品欧美| 国产精品美女久久久久av爽李琼| 中文字幕亚洲一区二区va在线| 亚洲三级免费电影| 天堂久久一区二区三区| 精品亚洲porn| 91免费国产在线观看| 欧美日韩精品三区| 久久一区二区视频| 亚洲欧美激情插| 蜜臀av一区二区| 成人a级免费电影| 欧美日韩国产另类不卡| 欧美精品一区视频| 亚洲猫色日本管| 青青草成人在线观看| 国产成人av网站| 欧美午夜影院一区| 久久综合九色综合97婷婷女人 | 国产日韩成人精品| 亚洲久本草在线中文字幕| 免费在线视频一区| av高清久久久| 精品少妇一区二区三区视频免付费| 亚洲国产精品99久久久久久久久| 国产精品一区二区在线播放| 色综合久久精品| 久久综合色婷婷| 亚洲成a人片综合在线| 国产福利91精品一区二区三区| 91国偷自产一区二区开放时间 | 3d动漫精品啪啪一区二区竹菊| 久久久久国产精品厨房| 亚洲已满18点击进入久久| 韩国欧美一区二区| 日本韩国欧美在线| 国产三级精品在线| 天天色天天操综合| 99re这里只有精品首页| 欧美mv日韩mv国产| 亚洲成在线观看| 91亚洲精品久久久蜜桃网站| 久久综合久久综合九色| 午夜精品久久久久久久久久| 成人美女视频在线观看| 日韩三级电影网址| 亚洲福利视频三区| 99v久久综合狠狠综合久久| 日韩视频一区二区三区在线播放| 亚洲人成精品久久久久| 国产福利精品一区| 精品国产一区二区亚洲人成毛片| 亚洲与欧洲av电影| 99久久精品免费看国产免费软件| 久久一区二区视频| 精品一二线国产| 欧美一区二区免费视频| 香蕉加勒比综合久久| 91精彩视频在线| 亚洲欧美日韩国产一区二区三区| 国产成人在线观看| 久久久久久97三级| 极品少妇一区二区三区精品视频| 在线播放欧美女士性生活| 性欧美疯狂xxxxbbbb| 欧美中文字幕一区二区三区亚洲| 中文字幕一区二区三区视频| 懂色av中文一区二区三区| 久久久国产精华| 国产精品1区2区3区| 久久看人人爽人人| 国产乱码精品一区二区三| 久久综合999| 国产河南妇女毛片精品久久久| 久久久久久亚洲综合| 丁香亚洲综合激情啪啪综合| 国产欧美日韩综合精品一区二区| 国产成人精品一区二区三区网站观看| 精品国产一二三区| 国产不卡在线一区| 中文字幕亚洲视频| 欧美性视频一区二区三区| 亚洲gay无套男同| 日本一区二区动态图| 99免费精品在线观看| 一区av在线播放| 欧美一区二区三区播放老司机| 久久国产三级精品| 久久久久一区二区三区四区| 本田岬高潮一区二区三区| 一区二区三区四区高清精品免费观看 | 欧美大片国产精品| 国产精品一二三| 亚洲欧洲日韩在线| 欧美日韩一级大片网址| 免费人成网站在线观看欧美高清| 欧美精品一区二区三区蜜桃视频| 国产黄人亚洲片| 亚洲一区二区三区在线播放| 日韩一区二区三区观看| 懂色av一区二区三区蜜臀| 夜夜亚洲天天久久| 精品国产免费久久| 91片黄在线观看|