• R/O
  • SSH
  • HTTPS

Commit

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

作業部屋の使い方を試しています。


Commit MetaInfo

Revision57 (tree)
Time2014-07-29 13:59:32
Authortuna_p

Log Message

HTML属性の取得方法を考える。

Change Summary

Incremental Difference

--- branches/HtmlTest2-b1/src/Form/HtmlSearch.java (revision 56)
+++ branches/HtmlTest2-b1/src/Form/HtmlSearch.java (revision 57)
@@ -183,11 +183,11 @@
183183 jPanel2.setLayout(jPanel2Layout);
184184 jPanel2Layout.setHorizontalGroup(
185185 jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
186- .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 387, Short.MAX_VALUE)
186+ .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE)
187187 );
188188 jPanel2Layout.setVerticalGroup(
189189 jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
190- .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 117, Short.MAX_VALUE)
190+ .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 156, Short.MAX_VALUE)
191191 );
192192
193193 jMenu1.setText("ファイル");
--- branches/HtmlTest2-b1/src/Lib/AttributeData.java (revision 56)
+++ branches/HtmlTest2-b1/src/Lib/AttributeData.java (revision 57)
Added: svn:keywords
## -0,0 +1 ##
+Id
\ No newline at end of property
--- branches/HtmlTest2-b1/src/Lib/HtmlParserCallback.java (revision 56)
+++ branches/HtmlTest2-b1/src/Lib/HtmlParserCallback.java (revision 57)
@@ -29,14 +29,14 @@
2929 import javax.swing.text.html.HTMLEditorKit;
3030
3131 /**
32- *
32+ * HTMLパーサ部品.
3333 * @author kgto
3434 */
3535 public class HtmlParserCallback extends HTMLEditorKit.ParserCallback {
3636
3737 // デバック情報表示フラグ
38- //final boolean DEBUG = false;
39- final boolean DEBUG = true;
38+ final boolean DEBUG = false;
39+ //final boolean DEBUG = true;
4040
4141 // Tag毎の階層
4242 HashMap<HTML.Tag,Integer> tagMap = new HashMap<>();
@@ -49,7 +49,6 @@
4949 // serach key と一致時の情報退避
5050 int bufCount = 0;
5151 HTML.Tag bufTag = null;
52- MutableAttributeSet bufAttr = null;
5352 // serach key と一致時の情報格納ワーク
5453 StringBuilder bufText;
5554
@@ -104,13 +103,12 @@
104103
105104 if(bufCount == 0) {
106105 if(tag.toString().equals(keytag)) {
107- if(serachAttribute(attr)) {
106+ //if(serachAttribute(attr)) {
107+ if(serachAttribute(tag, handleStartattrdata)) {
108108 bufCount = count;
109109 bufTag = tag;
110- bufAttr = attr;
110+ attrdata = new AttributeData();
111111 bufText = new StringBuilder();
112-
113- attrdata = new AttributeData();
114112 }
115113 }
116114 }
@@ -155,7 +153,6 @@
155153 // 退避したserach keyとの一致情報クリア
156154 bufCount = 0;
157155 bufTag = null;
158- bufAttr = null;
159156 bufText = null;
160157 }
161158
@@ -244,4 +241,28 @@
244241
245242 return false;
246243 }
244+
245+ /**
246+ * ページ内のID/CLASS値と検索キーを比較する.
247+ * @param tag
248+ * @param attrdata
249+ * @return boolean 検索キーと一致の時、true
250+ */
251+ public boolean serachAttribute(HTML.Tag tag, AttributeData attrdata) {
252+ // ID と CLASS の両方にキー入力有りの場合
253+ if(keyid.isEmpty() == false && keyclass.isEmpty() == false) {
254+ if(attrdata.searchId(tag, keyid) && attrdata.searchClass(tag, keyclass)) {
255+ return true;
256+ }
257+ }
258+ // ID のキーチェック
259+ if(keyid.isEmpty() == false) {
260+ return attrdata.searchId(tag, keyid);
261+ }
262+ // CLASS のキーチェック
263+ if(keyclass.isEmpty() == false) {
264+ return attrdata.searchClass(tag, keyclass);
265+ }
266+ return false;
267+ }
247268 }