• 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

Revision105 (tree)
Time2014-12-10 22:44:56
Authortuna_p

Log Message

パッケージ名変更

Change Summary

  • delete: branches/b3/WebScraping/src/Form/SearchDataRW.java
  • delete: branches/b3/WebScraping/src/Form/HtmlSearch.java
  • delete: branches/b3/WebScraping/src/Form/HtmlSearch.form
  • delete: branches/b3/WebScraping/src/Form

Incremental Difference

--- branches/b3/WebScraping/src/Form/SearchDataRW.java (revision 104)
+++ branches/b3/WebScraping/src/Form/SearchDataRW.java (nonexistent)
@@ -1,510 +0,0 @@
1-/*
2- * Copyright (C) 2014 kgto.
3- *
4- * This library is free software; you can redistribute it and/or
5- * modify it under the terms of the GNU Lesser General Public
6- * License as published by the Free Software Foundation; either
7- * version 2.1 of the License, or (at your option) any later version.
8- *
9- * This library is distributed in the hope that it will be useful,
10- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12- * Lesser General Public License for more details.
13- *
14- * You should have received a copy of the GNU Lesser General Public
15- * License along with this library; if not, write to the Free Software
16- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17- * MA 02110-1301 USA
18- */
19-/*
20- * $Id$
21- */
22-
23-package Form;
24-
25-import WebScraping.SearchData;
26-import java.io.BufferedReader;
27-import java.io.BufferedWriter;
28-import java.io.File;
29-import java.io.FileInputStream;
30-import java.io.FileNotFoundException;
31-import java.io.FileOutputStream;
32-import java.io.IOException;
33-import java.io.InputStreamReader;
34-import java.io.OutputStreamWriter;
35-import java.util.ArrayList;
36-import java.util.logging.Level;
37-import java.util.logging.Logger;
38-import javax.xml.parsers.DocumentBuilder;
39-import javax.xml.parsers.DocumentBuilderFactory;
40-import javax.xml.parsers.ParserConfigurationException;
41-import javax.xml.transform.Transformer;
42-import javax.xml.transform.TransformerConfigurationException;
43-import javax.xml.transform.TransformerException;
44-import javax.xml.transform.TransformerFactory;
45-import javax.xml.transform.dom.DOMSource;
46-import javax.xml.transform.stream.StreamResult;
47-import org.w3c.dom.DOMImplementation;
48-import org.w3c.dom.Document;
49-import org.w3c.dom.Element;
50-import org.w3c.dom.Node;
51-import org.w3c.dom.NodeList;
52-import org.xml.sax.SAXException;
53-
54-/**
55- *
56- * @author kgto
57- */
58-public class SearchDataRW {
59-
60- DocumentBuilder builder;
61- public Document document;
62- Element root;
63-
64- private final String splitchar = "\t";
65-
66- private String UrlAdress;
67- private ArrayList slist;
68-
69- public SearchDataRW() {
70- try {
71- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
72- builder = factory.newDocumentBuilder();
73-
74- } catch (ParserConfigurationException ex) {
75- Logger.getLogger(SearchDataRW.class.getName()).log(Level.SEVERE, null, ex);
76- }
77- }
78-
79- public void seturl(String UrlAdress) {
80- this.UrlAdress = UrlAdress;
81- }
82-
83- public void setslist(ArrayList slist) {
84- this.slist = slist;
85- }
86-
87- public String geturl() {
88- return UrlAdress;
89- }
90-
91- public ArrayList getslist() {
92- return slist;
93- }
94-
95- /**
96- * 保存.
97- * @param file
98- */
99- public void save(File file) {
100- //saveCsv(file);
101- //saveXml(file);
102-
103- saveUrl(UrlAdress);
104- saveSearchList(slist);
105- write(file);
106- }
107-
108- /**
109- * 読込.
110- * @param file
111- */
112- public void load(File file) {
113- //loadCsv(file);
114- //loadXml(file);
115-
116- read(file);
117- UrlAdress = loadUrl();
118- slist = loadSearchList();
119- }
120-
121- /* ---------------------------------------------------------------------- */
122- /**
123- * 保存(CSV形式).
124- * @param file
125- */
126- public void saveCsv(File file) {
127-
128- try {
129- //空のファイルを作成
130- file.createNewFile();
131-
132- FileOutputStream fileoutputstream = new FileOutputStream(file);
133- OutputStreamWriter outputstreamwriter = new OutputStreamWriter(fileoutputstream, "UTF-8");
134- BufferedWriter bufferedwriter = new BufferedWriter(outputstreamwriter);
135-
136- // URL
137- bufferedwriter.write(UrlAdress);
138- bufferedwriter.write("\n");
139- // 検索情報
140- for (Object slist1 : slist) {
141- SearchData sdat = (SearchData) slist1;
142- StringBuilder str = new StringBuilder();
143- str.append(sdat.getitem()).append(splitchar);
144- str.append(sdat.getHtmltag()).append(splitchar);
145- str.append(sdat.getHtmlid()).append(splitchar);
146- str.append(sdat.getHtmlclass()).append(splitchar);
147- str.append(sdat.getaround()).append(splitchar);
148- str.append(sdat.getregexp()).append("\n");
149-
150- bufferedwriter.write(str.toString());
151- }
152- bufferedwriter.close();
153-
154- } catch(IOException ex) {
155- Logger.getLogger(SearchDataRW.class.getName()).log(Level.SEVERE, null, ex);
156- }
157- }
158-
159- /**
160- * 読込(CSV形式).
161- * @param file
162- */
163- public void loadCsv(File file) {
164- slist = new ArrayList();
165-
166- try {
167- FileInputStream fileinputstream = new FileInputStream(file);
168- InputStreamReader inputstreamreader = new InputStreamReader(fileinputstream, "UTF-8");
169- BufferedReader bufferedreader = new BufferedReader(inputstreamreader);
170-
171- String rec;
172-
173- // URL
174- UrlAdress = bufferedreader.readLine();
175- // 検索情報
176- while((rec = bufferedreader.readLine()) != null) {
177- String[] recary = rec.split(splitchar, -1);
178- SearchData sdat = new SearchData();
179- sdat.setitem(recary[0]);
180- sdat.setHtmltag(recary[1]);
181- sdat.setHtmlid(recary[2]);
182- sdat.setHtmlclass(recary[3]);
183- sdat.setaround(recary[4]);
184- sdat.setregexp(recary[5]);
185-
186- slist.add(sdat);
187- }
188- bufferedreader.close();
189-
190- } catch(IOException ex) {
191- Logger.getLogger(SearchDataRW.class.getName()).log(Level.SEVERE, null, ex);
192- }
193-
194- }
195-
196- /* ---------------------------------------------------------------------- */
197- /**
198- * 保存(XML形式).
199- * @param file
200- */
201- public void saveXml(File file) {
202- try {
203- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
204- DocumentBuilder wkBuilder = factory.newDocumentBuilder();
205- DOMImplementation domImpl = wkBuilder.getDOMImplementation();
206-
207- Document doc = domImpl.createDocument("","searchdata",null);
208- Element wkRoot = doc.getDocumentElement();
209-
210- // URL
211- Element url = doc.createElement("url");
212- url.appendChild(doc.createTextNode(UrlAdress));
213- wkRoot.appendChild(url);
214-
215- // 検索情報
216- for (Object slist1 : slist) {
217- SearchData sdat = (SearchData) slist1;
218-
219- Element cslist = doc.createElement("searchlist");
220- Element item = doc.createElement("item");
221- Element htmltag = doc.createElement("htmltag");
222- Element htmlid = doc.createElement("htmlid");
223- Element htmlclass = doc.createElement("htmlclass");
224- Element around = doc.createElement("around");
225- Element regexp = doc.createElement("regexp");
226-
227- item.appendChild(doc.createTextNode(sdat.getitem()));
228- htmltag.appendChild(doc.createTextNode(sdat.getHtmltag()));
229- htmlid.appendChild(doc.createTextNode(sdat.getHtmlid()));
230- htmlclass.appendChild(doc.createTextNode(sdat.getHtmlclass()));
231- around.appendChild(doc.createTextNode(sdat.getaround()));
232- regexp.appendChild(doc.createTextNode(sdat.getregexp()));
233-
234- cslist.appendChild(item);
235- cslist.appendChild(htmltag);
236- cslist.appendChild(htmlid);
237- cslist.appendChild(htmlclass);
238- cslist.appendChild(around);
239- cslist.appendChild(regexp);
240-
241- wkRoot.appendChild(cslist);
242- }
243- // 出力
244- TransformerFactory transFactory = TransformerFactory.newInstance();
245- Transformer transformer = transFactory.newTransformer();
246-
247- DOMSource source = new DOMSource(doc);
248- FileOutputStream os = new FileOutputStream(file);
249- StreamResult result = new StreamResult(os);
250- transformer.transform(source, result);
251-
252- } catch (ParserConfigurationException | FileNotFoundException ex) {
253- Logger.getLogger(SearchDataRW.class.getName()).log(Level.SEVERE, null, ex);
254- } catch (TransformerConfigurationException ex) {
255- Logger.getLogger(SearchDataRW.class.getName()).log(Level.SEVERE, null, ex);
256- } catch (TransformerException ex) {
257- Logger.getLogger(SearchDataRW.class.getName()).log(Level.SEVERE, null, ex);
258- }
259- }
260-
261- /**
262- * 読込(XML形式).
263- * @param file
264- */
265- public void loadXml(File file) {
266- slist = new ArrayList();
267-
268- try {
269- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
270- DocumentBuilder wkBuilder = factory.newDocumentBuilder();
271- Document doc = wkBuilder.parse(file);
272-
273- // ルート要素の取得
274- Element wkRoot = doc.getDocumentElement();
275-
276- // URL
277- NodeList url = wkRoot.getElementsByTagName("url");
278- Node urlnode = url.item(0);
279- UrlAdress = urlnode.getFirstChild().getNodeValue();
280-
281- // 検索情報
282- NodeList cslist = wkRoot.getElementsByTagName("searchlist");
283- for(int i = 0; i < cslist.getLength(); i++) {
284- SearchData sdat = new SearchData();
285-
286- Node slistnode = cslist.item(i);
287- Node child;
288- for (child = slistnode.getFirstChild(); child != null; child = child.getNextSibling()) {
289- if(child.getNodeType() == Node.ELEMENT_NODE) {
290-
291- String tag = child.getNodeName();
292- String rtn = "";
293- if(child.getFirstChild() != null) {
294- rtn = child.getFirstChild().getNodeValue();
295- }
296-
297- switch (tag) {
298- case "item" :
299- sdat.setitem(rtn);
300- break;
301- case "htmltag" :
302- sdat.setHtmltag(rtn);
303- break;
304- case "htmlid" :
305- sdat.setHtmlid(rtn);
306- break;
307- case "htmlclass" :
308- sdat.setHtmlclass(rtn);
309- break;
310- case "around" :
311- sdat.setaround(rtn);
312- break;
313- case "regexp" :
314- sdat.setregexp(rtn);
315- break;
316- }
317- }
318- }
319- slist.add(sdat);
320- }
321-
322- } catch (ParserConfigurationException | SAXException | IOException ex) {
323- Logger.getLogger(SearchDataRW.class.getName()).log(Level.SEVERE, null, ex);
324- }
325- }
326-
327- /* ---------------------------------------------------------------------- */
328-
329- public String loadUrl() {
330- String urladdress;
331-
332- NodeList nodelist = root.getElementsByTagName("url");
333- Node node = nodelist.item(0);
334- urladdress = node.getFirstChild().getNodeValue();
335-
336- return urladdress;
337- }
338-
339- public ArrayList<SearchData> loadSearchList() {
340- ArrayList<SearchData> sdatlst = new ArrayList<>();
341-
342- NodeList nodelist = root.getElementsByTagName("searchlist");
343- for(int i = 0; i < nodelist.getLength(); i++) {
344- Node childnode = nodelist.item(i);
345-
346- boolean sdatflg = false;
347- SearchData sdat = new SearchData();
348-
349- //NodeList childnodelist = childnode.getChildNodes();
350- //for(int j = 0; j < childnodelist.getLength(); j++) {
351- // Node child = childnodelist.item(j);
352-
353- for (Node child = childnode.getFirstChild();
354- child != null; child = child.getNextSibling()) {
355-
356- if(child.getNodeType() == Node.ELEMENT_NODE) {
357-
358- String tag = child.getNodeName();
359- String rtn = "";
360- if(child.getFirstChild() != null) {
361- rtn = child.getFirstChild().getNodeValue();
362- }
363-
364- switch (tag) {
365- case "item" :
366- sdat.setitem(rtn);
367- sdatflg = true;
368- break;
369- case "htmltag" :
370- sdat.setHtmltag(rtn);
371- sdatflg = true;
372- break;
373- case "htmlid" :
374- sdat.setHtmlid(rtn);
375- sdatflg = true;
376- break;
377- case "htmlclass" :
378- sdat.setHtmlclass(rtn);
379- sdatflg = true;
380- break;
381- case "around" :
382- sdat.setaround(rtn);
383- sdatflg = true;
384- break;
385- case "regexp" :
386- sdat.setregexp(rtn);
387- sdatflg = true;
388- break;
389- }
390- }
391- }
392- if(sdatflg) sdatlst.add(sdat);
393- }
394- return sdatlst;
395- }
396-
397- public Element loadElement(String elementTagName) {
398- NodeList nodelist = root.getElementsByTagName(elementTagName);
399- Element element = (Element)nodelist.item(0);
400-
401- return element;
402- }
403-
404- public void saveUrl(String urladdress) {
405- checkdoc();
406- removeElement("url"); // 既にElementが存在してた場合、一度削除
407-
408- Element url = document.createElement("url");
409- url.appendChild(document.createTextNode(urladdress));
410- root.appendChild(url);
411- }
412-
413- public void saveSearchList(ArrayList slist) {
414- checkdoc();
415- removeElement("searchlist"); // 既にElementが存在してた場合、一度削除
416-
417- int count = 0;
418- for (Object slist1 : slist) {
419- SearchData sdat = (SearchData) slist1;
420-
421- Element cslist = document.createElement("searchlist");
422- cslist.setAttribute("listNo", String.valueOf(++count));
423-
424- addChild(cslist, "item", sdat.getitem());
425- addChild(cslist, "htmltag", sdat.getHtmltag());
426- addChild(cslist, "htmlid", sdat.getHtmlid());
427- addChild(cslist, "htmlclass", sdat.getHtmlclass());
428- addChild(cslist, "around", sdat.getaround());
429- addChild(cslist, "regexp", sdat.getregexp());
430-
431- root.appendChild(cslist);
432- }
433- }
434-
435- public void saveElement(Element element) {
436- checkdoc();
437- removeElement(element.getTagName()); // 既にElementが存在してた場合、一度削除
438-
439- root.appendChild(element);
440- }
441-
442- private void addChild(Element cslist, String keyword, String data) {
443- if(!data.isEmpty()) {
444- Element element = document.createElement(keyword);
445- element.appendChild(document.createTextNode(data));
446- cslist.appendChild(element);
447- }
448- }
449-
450- private void removeElement(String elementTagName) {
451- int nodeSize;
452- do {
453- NodeList nodelist = document.getElementsByTagName(elementTagName);
454- nodeSize = nodelist.getLength();
455- for(int i = 0; i < nodelist.getLength(); i++) {
456- Node node = nodelist.item(i);
457- root.removeChild(node);
458- }
459- } while(nodeSize > 0);
460- }
461-
462- /**
463- * ドキュメントチェック.
464- * 新規の場合やXMLファイルの読込みが行われていない状態時、新たにルートエレメントを作成する。
465- * 既読の場合、ルートエレメントの取得を行う。
466- */
467- public void checkdoc() {
468- if(document == null) {
469- DOMImplementation domImpl = builder.getDOMImplementation();
470- document = domImpl.createDocument("","searchdata",null);
471- }
472- root = document.getDocumentElement();
473- }
474-
475- /**
476- * XML読込み.
477- * @param file
478- */
479- public void read(File file) {
480- try {
481- document = builder.parse(file);
482- root = document.getDocumentElement();
483-
484- } catch (SAXException | IOException ex) {
485- Logger.getLogger(SearchDataRW.class.getName()).log(Level.SEVERE, null, ex);
486- }
487- }
488-
489- /**
490- * XML書込み.
491- * @param file
492- */
493- public void write(File file) {
494- try {
495- TransformerFactory transFactory = TransformerFactory.newInstance();
496- Transformer transformer = transFactory.newTransformer();
497-
498- DOMSource source = new DOMSource(document);
499- FileOutputStream os = new FileOutputStream(file);
500- StreamResult result = new StreamResult(os);
501- transformer.transform(source, result);
502-
503- } catch (TransformerConfigurationException ex) {
504- Logger.getLogger(SearchDataRW.class.getName()).log(Level.SEVERE, null, ex);
505- } catch (FileNotFoundException | TransformerException ex) {
506- Logger.getLogger(SearchDataRW.class.getName()).log(Level.SEVERE, null, ex);
507- }
508- }
509-
510-}
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property
--- branches/b3/WebScraping/src/Form/HtmlSearch.java (revision 104)
+++ branches/b3/WebScraping/src/Form/HtmlSearch.java (nonexistent)
@@ -1,508 +0,0 @@
1-/*
2- * Copyright (C) 2014 kgto.
3- *
4- * This library is free software; you can redistribute it and/or
5- * modify it under the terms of the GNU Lesser General Public
6- * License as published by the Free Software Foundation; either
7- * version 2.1 of the License, or (at your option) any later version.
8- *
9- * This library is distributed in the hope that it will be useful,
10- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12- * Lesser General Public License for more details.
13- *
14- * You should have received a copy of the GNU Lesser General Public
15- * License along with this library; if not, write to the Free Software
16- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17- * MA 02110-1301 USA
18- */
19-/*
20- * $Id$
21- */
22-package Form;
23-
24-import WebScraping.HtmlParser;
25-import WebScraping.SearchData;
26-import java.awt.Desktop;
27-import java.io.File;
28-import java.io.IOException;
29-import java.net.URI;
30-import java.net.URISyntaxException;
31-import java.util.*;
32-import java.util.logging.Level;
33-import java.util.logging.Logger;
34-import javax.swing.JFileChooser;
35-import javax.swing.filechooser.FileFilter;
36-import javax.swing.filechooser.FileNameExtensionFilter;
37-import org.jdesktop.observablecollections.ObservableCollections;
38-
39-/**
40- * HTMLページ上の特定の項目を検索し、その項目内容の値を取得する.
41- * @author kgto
42- */
43-public class HtmlSearch extends javax.swing.JFrame {
44-
45- private final SearchDataRW sio = new SearchDataRW();
46-
47- private ArrayList slist = new ArrayList();
48- private List serachDataList = ObservableCollections.observableList(slist);
49-
50- /**
51- * Creates new form Frame1
52- */
53- public HtmlSearch() {
54- initComponents();
55-
56- // カレントディレクトリ取得
57- String dir = System.getProperty("user.dir");
58- File file = new java.io.File(dir + "\\data");
59- jFileChooser1.setCurrentDirectory(file);
60-
61- FileFilter filter1 = new FileNameExtensionFilter("XMLファイル", "xml");
62- FileFilter filter2 = new FileNameExtensionFilter("TEXTファイル", "txt");
63- jFileChooser1.addChoosableFileFilter(filter1);
64- jFileChooser1.addChoosableFileFilter(filter2);
65- jFileChooser1.setFileFilter(filter1);
66-
67- }
68-
69- public List getSerachDataList() {
70- return this.serachDataList;
71- }
72-
73- public void setSerachDataList(List serachDataList) {
74- this.serachDataList = serachDataList;
75- }
76-
77- /**
78- * This method is called from within the constructor to initialize the form.
79- * WARNING: Do NOT modify this code. The content of this method is always
80- * regenerated by the Form Editor.
81- */
82- @SuppressWarnings("unchecked")
83- // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
84- private void initComponents() {
85- bindingGroup = new org.jdesktop.beansbinding.BindingGroup();
86-
87- jFileChooser1 = new javax.swing.JFileChooser();
88- jRadioButton1 = new javax.swing.JRadioButton();
89- jLabel1 = new javax.swing.JLabel();
90- jTxtUrl = new javax.swing.JTextField();
91- jBtnSearch = new javax.swing.JButton();
92- jTabbedPane1 = new javax.swing.JTabbedPane();
93- jPanelTab1 = new javax.swing.JPanel();
94- jScrollPane1 = new javax.swing.JScrollPane();
95- jTable1 = new javax.swing.JTable();
96- jBtnRowIns = new javax.swing.JButton();
97- jBtnRowDel = new javax.swing.JButton();
98- jBtnRowCpy = new javax.swing.JButton();
99- jPanelTab2 = new javax.swing.JPanel();
100- jScrollPaneLabel = new javax.swing.JScrollPane();
101- jTxtLabel = new javax.swing.JTextArea();
102- jScrollPane404msg = new javax.swing.JScrollPane();
103- jTxt404msg = new javax.swing.JTextArea();
104- jPanelRtn = new javax.swing.JPanel();
105- jScrollPaneRtn = new javax.swing.JScrollPane();
106- jTxtRtn = new javax.swing.JTextArea();
107- jMenuBar1 = new javax.swing.JMenuBar();
108- jMenu1 = new javax.swing.JMenu();
109- jMenuLoad = new javax.swing.JMenuItem();
110- jMenuSave = new javax.swing.JMenuItem();
111- jMenu3 = new javax.swing.JMenu();
112- jMenuItem1 = new javax.swing.JMenuItem();
113- jMenu2 = new javax.swing.JMenu();
114-
115- jFileChooser1.setCurrentDirectory(null);
116- jFileChooser1.setDialogTitle("");
117-
118- jRadioButton1.setText("jRadioButton1");
119-
120- setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
121- setTitle("タグ検索");
122-
123- jLabel1.setText(" URL:");
124-
125- jBtnSearch.setText("検索");
126- jBtnSearch.addActionListener(new java.awt.event.ActionListener() {
127- public void actionPerformed(java.awt.event.ActionEvent evt) {
128- jBtnSearchActionPerformed(evt);
129- }
130- });
131-
132- jPanelTab1.setBorder(javax.swing.BorderFactory.createTitledBorder("検索情報"));
133-
134- jTable1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
135- jTable1.getTableHeader().setReorderingAllowed(false);
136-
137- org.jdesktop.beansbinding.ELProperty eLProperty = org.jdesktop.beansbinding.ELProperty.create("${serachDataList}");
138- org.jdesktop.swingbinding.JTableBinding jTableBinding = org.jdesktop.swingbinding.SwingBindings.createJTableBinding(org.jdesktop.beansbinding.AutoBinding.UpdateStrategy.READ_WRITE, this, eLProperty, jTable1);
139- org.jdesktop.swingbinding.JTableBinding.ColumnBinding columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${item}"));
140- columnBinding.setColumnName("項目名");
141- columnBinding.setColumnClass(String.class);
142- columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${htmltag}"));
143- columnBinding.setColumnName("タグ");
144- columnBinding.setColumnClass(String.class);
145- columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${htmlid}"));
146- columnBinding.setColumnName("ID");
147- columnBinding.setColumnClass(String.class);
148- columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${htmlclass}"));
149- columnBinding.setColumnName("クラス");
150- columnBinding.setColumnClass(String.class);
151- columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${around}"));
152- columnBinding.setColumnName("位置");
153- columnBinding.setColumnClass(String.class);
154- columnBinding = jTableBinding.addColumnBinding(org.jdesktop.beansbinding.ELProperty.create("${regexp}"));
155- columnBinding.setColumnName("抽出条件");
156- columnBinding.setColumnClass(String.class);
157- bindingGroup.addBinding(jTableBinding);
158- jTableBinding.bind();
159- jScrollPane1.setViewportView(jTable1);
160-
161- jBtnRowIns.setText("行挿入");
162- jBtnRowIns.addActionListener(new java.awt.event.ActionListener() {
163- public void actionPerformed(java.awt.event.ActionEvent evt) {
164- jBtnRowInsActionPerformed(evt);
165- }
166- });
167-
168- jBtnRowDel.setText("行削除");
169- jBtnRowDel.addActionListener(new java.awt.event.ActionListener() {
170- public void actionPerformed(java.awt.event.ActionEvent evt) {
171- jBtnRowDelActionPerformed(evt);
172- }
173- });
174-
175- jBtnRowCpy.setText("行コピー");
176- jBtnRowCpy.addActionListener(new java.awt.event.ActionListener() {
177- public void actionPerformed(java.awt.event.ActionEvent evt) {
178- jBtnRowCpyActionPerformed(evt);
179- }
180- });
181-
182- javax.swing.GroupLayout jPanelTab1Layout = new javax.swing.GroupLayout(jPanelTab1);
183- jPanelTab1.setLayout(jPanelTab1Layout);
184- jPanelTab1Layout.setHorizontalGroup(
185- jPanelTab1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
186- .addGroup(jPanelTab1Layout.createSequentialGroup()
187- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
188- .addComponent(jBtnRowCpy)
189- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
190- .addComponent(jBtnRowDel)
191- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
192- .addComponent(jBtnRowIns))
193- .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
194- );
195- jPanelTab1Layout.setVerticalGroup(
196- jPanelTab1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
197- .addGroup(jPanelTab1Layout.createSequentialGroup()
198- .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 173, Short.MAX_VALUE)
199- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
200- .addGroup(jPanelTab1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
201- .addComponent(jBtnRowDel)
202- .addComponent(jBtnRowIns)
203- .addComponent(jBtnRowCpy)))
204- );
205-
206- jTabbedPane1.addTab("キー設定", jPanelTab1);
207-
208- jPanelTab2.setBorder(javax.swing.BorderFactory.createTitledBorder("メッセージ"));
209-
210- jScrollPaneLabel.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
211- jScrollPaneLabel.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_NEVER);
212-
213- jTxtLabel.setEditable(false);
214- jTxtLabel.setBackground(java.awt.Color.lightGray);
215- jTxtLabel.setColumns(20);
216- jTxtLabel.setFont(new java.awt.Font("MS UI Gothic", 0, 12)); // NOI18N
217- jTxtLabel.setLineWrap(true);
218- jTxtLabel.setRows(2);
219- jTxtLabel.setText("取得ページに以下のメッセージが含まれていた場合、対象データが取得出来なかったと通知します。");
220- jTxtLabel.setAutoscrolls(false);
221- jTxtLabel.setBorder(null);
222- jTxtLabel.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
223- jTxtLabel.setFocusable(false);
224- jTxtLabel.setHighlighter(null);
225- jTxtLabel.setKeymap(null);
226- jTxtLabel.setOpaque(false);
227- jTxtLabel.setRequestFocusEnabled(false);
228- jTxtLabel.setVerifyInputWhenFocusTarget(false);
229- jScrollPaneLabel.setViewportView(jTxtLabel);
230-
231- jTxt404msg.setColumns(20);
232- jTxt404msg.setRows(3);
233- jTxt404msg.setText("一致する銘柄は見つかりませんでした\n");
234- jScrollPane404msg.setViewportView(jTxt404msg);
235-
236- javax.swing.GroupLayout jPanelTab2Layout = new javax.swing.GroupLayout(jPanelTab2);
237- jPanelTab2.setLayout(jPanelTab2Layout);
238- jPanelTab2Layout.setHorizontalGroup(
239- jPanelTab2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
240- .addComponent(jScrollPane404msg)
241- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelTab2Layout.createSequentialGroup()
242- .addContainerGap()
243- .addComponent(jScrollPaneLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 359, Short.MAX_VALUE)
244- .addContainerGap())
245- );
246- jPanelTab2Layout.setVerticalGroup(
247- jPanelTab2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
248- .addGroup(jPanelTab2Layout.createSequentialGroup()
249- .addComponent(jScrollPaneLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)
250- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
251- .addComponent(jScrollPane404msg))
252- );
253-
254- jTabbedPane1.addTab("結果無し判定", jPanelTab2);
255-
256- jPanelRtn.setBorder(javax.swing.BorderFactory.createTitledBorder("検索結果"));
257-
258- jTxtRtn.setColumns(20);
259- jTxtRtn.setRows(5);
260- jScrollPaneRtn.setViewportView(jTxtRtn);
261-
262- javax.swing.GroupLayout jPanelRtnLayout = new javax.swing.GroupLayout(jPanelRtn);
263- jPanelRtn.setLayout(jPanelRtnLayout);
264- jPanelRtnLayout.setHorizontalGroup(
265- jPanelRtnLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
266- .addComponent(jScrollPaneRtn)
267- );
268- jPanelRtnLayout.setVerticalGroup(
269- jPanelRtnLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
270- .addComponent(jScrollPaneRtn, javax.swing.GroupLayout.DEFAULT_SIZE, 163, Short.MAX_VALUE)
271- );
272-
273- jMenu1.setText("ファイル");
274-
275- jMenuLoad.setText("LOAD");
276- jMenuLoad.addActionListener(new java.awt.event.ActionListener() {
277- public void actionPerformed(java.awt.event.ActionEvent evt) {
278- jMenuLoadActionPerformed(evt);
279- }
280- });
281- jMenu1.add(jMenuLoad);
282-
283- jMenuSave.setText("SAVE");
284- jMenuSave.addActionListener(new java.awt.event.ActionListener() {
285- public void actionPerformed(java.awt.event.ActionEvent evt) {
286- jMenuSaveActionPerformed(evt);
287- }
288- });
289- jMenu1.add(jMenuSave);
290-
291- jMenuBar1.add(jMenu1);
292-
293- jMenu3.setText("ツール");
294-
295- jMenuItem1.setText("ブラウザで表示");
296- jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
297- public void actionPerformed(java.awt.event.ActionEvent evt) {
298- jMenuItem1ActionPerformed(evt);
299- }
300- });
301- jMenu3.add(jMenuItem1);
302-
303- jMenuBar1.add(jMenu3);
304-
305- jMenu2.setText("検索");
306- jMenu2.addMouseListener(new java.awt.event.MouseAdapter() {
307- public void mouseClicked(java.awt.event.MouseEvent evt) {
308- jMenu2MouseClicked(evt);
309- }
310- });
311- jMenuBar1.add(jMenu2);
312-
313- setJMenuBar(jMenuBar1);
314-
315- javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
316- getContentPane().setLayout(layout);
317- layout.setHorizontalGroup(
318- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
319- .addComponent(jPanelRtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
320- .addGroup(layout.createSequentialGroup()
321- .addComponent(jLabel1)
322- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
323- .addComponent(jTxtUrl)
324- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
325- .addComponent(jBtnSearch))
326- .addComponent(jTabbedPane1)
327- );
328- layout.setVerticalGroup(
329- layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
330- .addGroup(layout.createSequentialGroup()
331- .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
332- .addComponent(jLabel1)
333- .addComponent(jTxtUrl, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
334- .addComponent(jBtnSearch))
335- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
336- .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 250, javax.swing.GroupLayout.PREFERRED_SIZE)
337- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
338- .addComponent(jPanelRtn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
339- .addContainerGap())
340- );
341-
342- bindingGroup.bind();
343-
344- pack();
345- }// </editor-fold>//GEN-END:initComponents
346-
347- private void jBtnRowInsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnRowInsActionPerformed
348- int SelectedRow = jTable1.getSelectedRow();
349- SearchData sdat = new SearchData();
350-
351- if(SelectedRow >= 0) {
352- this.serachDataList.add(SelectedRow, sdat);
353- } else {
354- this.serachDataList.add(sdat);
355- }
356- }//GEN-LAST:event_jBtnRowInsActionPerformed
357-
358- private void jBtnRowDelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnRowDelActionPerformed
359- int SelectedRow = jTable1.getSelectedRow();
360- if(!(SelectedRow < 0)) {
361- this.serachDataList.remove(SelectedRow);
362- }
363- }//GEN-LAST:event_jBtnRowDelActionPerformed
364-
365- private void jMenuLoadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuLoadActionPerformed
366- jFileChooser1.setDialogTitle("読込");
367- int selected = jFileChooser1.showOpenDialog(this);
368- if (selected == JFileChooser.APPROVE_OPTION) {
369- File file = jFileChooser1.getSelectedFile();
370- serachDataList.clear();
371- sio.load(file);
372- jTxtUrl.setText(sio.geturl());
373- serachDataList.addAll(sio.getslist());
374- }
375- }//GEN-LAST:event_jMenuLoadActionPerformed
376-
377- private void jMenuSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuSaveActionPerformed
378- jFileChooser1.setDialogTitle("保存");
379- int selected = jFileChooser1.showSaveDialog(this);
380- if (selected == JFileChooser.APPROVE_OPTION) {
381- File file = jFileChooser1.getSelectedFile();
382- sio.seturl(jTxtUrl.getText());
383- sio.setslist(slist);
384- sio.save(file);
385- }
386- }//GEN-LAST:event_jMenuSaveActionPerformed
387-
388- private void jMenu2MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jMenu2MouseClicked
389- Search_execution();
390- }//GEN-LAST:event_jMenu2MouseClicked
391-
392- private void jBtnRowCpyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnRowCpyActionPerformed
393- int SelectedRow = jTable1.getSelectedRow();
394- if(SelectedRow >= 0) {
395- SearchData SelectData = (SearchData)slist.get(SelectedRow);
396- SearchData Cpydata = new SearchData(SelectData);
397- this.serachDataList.add(SelectedRow, Cpydata);
398- }
399- }//GEN-LAST:event_jBtnRowCpyActionPerformed
400-
401- private void jBtnSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jBtnSearchActionPerformed
402- Search_execution();
403- }//GEN-LAST:event_jBtnSearchActionPerformed
404-
405- private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
406- Desktop desktop = Desktop.getDesktop();
407- String uriString = jTxtUrl.getText();
408- try {
409- URI uri = new URI(uriString);
410- desktop.browse(uri);
411-
412- } catch (URISyntaxException | IOException ex) {
413- Logger.getLogger(HtmlSearch.class.getName()).log(Level.SEVERE, null, ex);
414- }
415- }//GEN-LAST:event_jMenuItem1ActionPerformed
416-
417- /**
418- * 検索実行.
419- */
420- void Search_execution() {
421- jTxtRtn.setText(null);
422- HtmlParser par = new HtmlParser(jTxtUrl.getText());
423-
424- // データ無し(404)判定
425- String strdata = par.getStringPageData();
426- String text = jTxt404msg.getText();
427- String[] strsearch = text.split("\n");
428- for(String strsearch1 : strsearch) {
429- if(strdata.contains(strsearch1)) {
430- jTxtRtn.append(strsearch1);
431- return;
432- }
433- }
434-
435- // 検索結果
436- for (Object slist1 : slist) {
437- SearchData sdata = (SearchData)slist1;
438- String ans = sdata.getitem();
439- String rtn = par.search(sdata);
440- jTxtRtn.append(ans + "\t" + rtn + "\r\n");
441- }
442- jTxtRtn.setCaretPosition(0);
443- }
444-
445- /**
446- * @param args the command line arguments
447- */
448- public static void main(String args[]) {
449- /* Set the Nimbus look and feel */
450- //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
451- /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
452- * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
453- */
454- try {
455- for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
456- if ("Nimbus".equals(info.getName())) {
457- javax.swing.UIManager.setLookAndFeel(info.getClassName());
458- break;
459- }
460- }
461- } catch (ClassNotFoundException
462- | InstantiationException
463- | IllegalAccessException
464- | javax.swing.UnsupportedLookAndFeelException ex) {
465- java.util.logging.Logger.getLogger(HtmlSearch.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
466- }
467- //</editor-fold>
468-
469- /* Create and display the form */
470- java.awt.EventQueue.invokeLater(new Runnable() {
471- @Override
472- public void run() {
473- new HtmlSearch().setVisible(true);
474- }
475- });
476- }
477-
478- // Variables declaration - do not modify//GEN-BEGIN:variables
479- private javax.swing.JButton jBtnRowCpy;
480- private javax.swing.JButton jBtnRowDel;
481- private javax.swing.JButton jBtnRowIns;
482- private javax.swing.JButton jBtnSearch;
483- private javax.swing.JFileChooser jFileChooser1;
484- private javax.swing.JLabel jLabel1;
485- private javax.swing.JMenu jMenu1;
486- private javax.swing.JMenu jMenu2;
487- private javax.swing.JMenu jMenu3;
488- private javax.swing.JMenuBar jMenuBar1;
489- private javax.swing.JMenuItem jMenuItem1;
490- private javax.swing.JMenuItem jMenuLoad;
491- private javax.swing.JMenuItem jMenuSave;
492- private javax.swing.JPanel jPanelRtn;
493- private javax.swing.JPanel jPanelTab1;
494- private javax.swing.JPanel jPanelTab2;
495- private javax.swing.JRadioButton jRadioButton1;
496- private javax.swing.JScrollPane jScrollPane1;
497- private javax.swing.JScrollPane jScrollPane404msg;
498- private javax.swing.JScrollPane jScrollPaneLabel;
499- private javax.swing.JScrollPane jScrollPaneRtn;
500- private javax.swing.JTabbedPane jTabbedPane1;
501- private javax.swing.JTable jTable1;
502- private javax.swing.JTextArea jTxt404msg;
503- private javax.swing.JTextArea jTxtLabel;
504- private javax.swing.JTextArea jTxtRtn;
505- private javax.swing.JTextField jTxtUrl;
506- private org.jdesktop.beansbinding.BindingGroup bindingGroup;
507- // End of variables declaration//GEN-END:variables
508-}
Deleted: svn:keywords
## -1 +0,0 ##
-Id
\ No newline at end of property