• R/O
  • SSH
  • HTTPS

smart-gs: コミット


コミットメタ情報

リビジョン27 (tree)
日時2010-10-21 09:41:54
作者tsukushi1985

ログメッセージ

辞書機能を以前のものに戻した。
ただ、辞書検索を使うと、search scope:nullと出て検索がストップする。(単に登録した範囲が狭すぎるのかもしれないが)。
変更したクラス
com.hexidec.ekit.GSHTMLEditorSearchActionListner(エラーが起きたので同じ内容で書き換えただけ。実質的な変更はしていない)。
smart_gs.dictionary.Dictionary

DictionaryRegion
DictionaryXML

smart_gs.image_search.normal.swingui.ImageSearchDialog
smart_gs.logical.SpreadTree
smart_gs.smleditor.swingui.GSEditor

変更サマリ

差分

--- branches/tshimizu/src/smart_gs/smleditor/swingui/GSEditor.java (revision 26)
+++ branches/tshimizu/src/smart_gs/smleditor/swingui/GSEditor.java (revision 27)
@@ -89,7 +89,14 @@
8989 this.tabbedPane.getSpreadCanvas().setCenterLocation(point);
9090 }
9191 public GSEditor(Region region) {
92- this(region.getSpread(),region.getView().getRectangle2D());
92+ this(region.getSpread());
93+ View view = region.getView();
94+ view.setIsEmphasized(true);
95+ Rectangle2D rect = view.getRectangle2D();
96+ Point point = new Point((int)rect.getX(),(int)rect.getY());
97+ this.tabbedPane.getSpreadCanvas().setCenterLocation(point);
98+ this.tabbedPane.getSpreadCanvas().addTempView(view);
99+
93100 }
94101 public GSEditor(TextSegment segment) {
95102 super("Editor");
--- branches/tshimizu/src/smart_gs/dictionary/Dictionary.java (revision 26)
+++ branches/tshimizu/src/smart_gs/dictionary/Dictionary.java (revision 27)
@@ -18,8 +18,8 @@
1818 public void setWord(String word) {
1919 this.word = word;
2020 }
21- public DictionaryRegion getDictionaryRegionList(int index) {
22- return dictionaryRegionList.get(index);
21+ public void deleteDictionaryRegionList(int index) {
22+ dictionaryRegionList.remove(index);
2323 }
2424
2525
--- branches/tshimizu/src/smart_gs/dictionary/DictionaryXML.java (revision 26)
+++ branches/tshimizu/src/smart_gs/dictionary/DictionaryXML.java (revision 27)
@@ -1,20 +1,11 @@
11 package smart_gs.dictionary;
22
3-import java.awt.Image;
4-import java.awt.Point;
5-import java.awt.Rectangle;
6-import java.awt.geom.Point2D;
73 import java.io.File;
8-import java.io.FileInputStream;
94 import java.io.FileOutputStream;
105 import java.io.IOException;
116 import java.io.OutputStreamWriter;
127 import java.io.StringWriter;
13-import java.nio.channels.FileChannel;
14-import java.text.SimpleDateFormat;
158 import java.util.ArrayList;
16-import java.util.Calendar;
17-import java.util.Enumeration;
189 import java.util.HashMap;
1910 import java.util.Iterator;
2011 import java.util.List;
@@ -23,9 +14,6 @@
2314 import java.util.regex.Pattern;
2415
2516 import javax.swing.JOptionPane;
26-import javax.swing.tree.DefaultMutableTreeNode;
27-import javax.swing.tree.DefaultTreeModel;
28-import javax.swing.tree.TreePath;
2917 import javax.xml.parsers.DocumentBuilder;
3018 import javax.xml.parsers.DocumentBuilderFactory;
3119 import javax.xml.parsers.ParserConfigurationException;
@@ -36,33 +24,20 @@
3624 import javax.xml.transform.dom.DOMSource;
3725 import javax.xml.transform.stream.StreamResult;
3826
39-import org.apache.commons.lang.StringUtils;
4027 import org.w3c.dom.Document;
4128 import org.w3c.dom.Element;
4229 import org.w3c.dom.NodeList;
4330 import org.xml.sax.SAXException;
4431
45-import reasoning_web.logical.Connection;
46-import smart_gs.drawing_tool.view.RectangleView;
4732 import smart_gs.logical.GSResource;
48-import smart_gs.logical.LineSegment;
4933 import smart_gs.logical.Preference;
5034 import smart_gs.logical.Region;
5135 import smart_gs.logical.Spread;
5236 import smart_gs.logical.SpreadTree;
5337 import smart_gs.logical.XML2ResourceConverter;
54-import smart_gs.reasoning_web.logical.GSExplanatoryNote;
55-import smart_gs.reasoning_web.logical.GS_RWRepository;
5638 import smart_gs.swingui.WorkspaceWindow;
57-import smart_gs.swingui.toolbar.action.ShowLocalViewAction;
58-import smart_gs.swingui.tree.action.AddDirectoryAction;
59-import smart_gs.util.BmpFileCreator;
60-import smart_gs.util.SegmentInfoCreator;
6139
6240 public class DictionaryXML {
63- private static int[] charint = {Integer.parseInt("FFE5",16)};
64-// public static final String DICTIONARY = new String(charint,0,1) + "dictionary";
65- public static final String DICTIONARY = "~dictionary";
6641
6742 protected static DictionaryXML singleton;
6843 protected String dictionaryfilename;
@@ -96,7 +71,7 @@
9671 load(false);
9772 }
9873 */
99- public void load(){
74+ protected void load(){
10075 // XML2ResourceConverter.getSpread(parent, element)
10176 loadSpreads.clear();
10277 dictionaryMap.clear();
@@ -147,7 +122,7 @@
147122 Region region = XML2ResourceConverter.getRegion(spread, regionElement);
148123
149124 DictionaryRegion dictionaryRegion = new DictionaryRegion();
150- dictionaryRegion.setUri(region.getSpread().getURI());
125+ dictionaryRegion.setImageFile("C:/a");
151126 dictionaryRegion.setRegion(region);
152127 dictionary.addDictionaryRegionList(dictionaryRegion);
153128 }else{
@@ -223,14 +198,12 @@
223198 }
224199 return wordList;
225200 }
226- public void add(String word,Region region_){
227- Region region = createDSC(region_);
228-
201+ public void add(String word,Region region){
229202 if(dictionaryMap.containsKey(word)){
230203 Dictionary dictionary = dictionaryMap.get(word);
231204
232205 DictionaryRegion dictionaryRegion = new DictionaryRegion();
233- dictionaryRegion.setUri(region_.getSpread().getURI());
206+ dictionaryRegion.setImageFile("C:/a");
234207 dictionaryRegion.setRegion(region);
235208 dictionary.addDictionaryRegionList(dictionaryRegion);
236209 }else{
@@ -238,120 +211,13 @@
238211 dictionary.setWord(word);
239212
240213 DictionaryRegion dictionaryRegion = new DictionaryRegion();
241- dictionaryRegion.setUri(region_.getSpread().getURI());
214+ dictionaryRegion.setImageFile("C:/a");
242215 dictionaryRegion.setRegion(region);
243216 dictionary.addDictionaryRegionList(dictionaryRegion);
244217
245218 dictionaryMap.put(word, dictionary);
246219 }
247- Spread spread = region.getSpread();
248- spread.addRegion(region);
249- spread.checkDscFile();
250- spread.loadLines();
251- // リンクを作成
252- {
253- GSExplanatoryNote note = new GSExplanatoryNote("<xml></xml>");
254- GS_RWRepository.getInstance().createConnection(region_, region, note,Connection.TARGET_TO_SOURCE);
255- }
256- {
257- GSExplanatoryNote note = new GSExplanatoryNote("<xml></xml>");
258- GS_RWRepository.getInstance().createConnection(region, region_, note,Connection.TARGET_TO_SOURCE);
259- }
260- if(!loadSpreads.contains(spread)){
261- loadSpreads.add(spread);
262- }
263-
264220 }
265-
266- protected Region createDSC(Region region){
267- SpreadTree spreadTree = SpreadTree.getInstance();
268- Image image = region.getSpread().getImage();
269-
270- String imagepath = Preference.getInstance().getImageFolderPath();
271- imagepath = StringUtils.replace(imagepath, "\\", "/");
272- if(!imagepath.endsWith("/")){
273- imagepath += "/";
274- }
275- imagepath += DICTIONARY + "/";
276- File file = new File(imagepath);
277- if(!file.exists()){
278- file.mkdirs();
279- }
280- SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
281- Calendar cal = Calendar.getInstance();
282- String filename = sdf.format(cal.getTime());
283- try{
284- String extend = "";
285- if(region.getSpread().getFile().getName().lastIndexOf(".") != -1){
286- extend = region.getSpread().getFile().getName().substring(region.getSpread().getFile().getName().lastIndexOf("."),region.getSpread().getFile().getName().length());
287- }
288- copyTransfer(region.getSpread().getFile().getAbsolutePath(),imagepath + sdf.format(cal.getTime()) + extend);
289- }catch(IOException e){
290- e.printStackTrace();
291- }
292-
293-
294- String folderPath = Spread.DSC_FOLDER_PATH;
295- folderPath = StringUtils.replace(folderPath, "\\", "/");
296- if(!folderPath.endsWith("/")){
297- folderPath+="/";
298- }
299- folderPath += DICTIONARY + "/";
300- new File(folderPath).mkdirs();
301- new BmpFileCreator(image,image.getWidth(null),image.getHeight(null)).create(folderPath,filename + ".bmp",false);
302-
303- List<LineSegment> segments = new ArrayList<LineSegment>();
304- List<Point2D> points = new ArrayList<Point2D>();
305- Rectangle rectangle = region.getView().getRectangle();
306-
307- points.add(new Point((int)rectangle.getX(),(int)rectangle.getY()));
308- points.add(new Point((int)rectangle.getX() + (int)rectangle.getWidth(),(int)rectangle.getY()));
309- points.add(new Point((int)rectangle.getX() + (int)rectangle.getWidth(),(int)rectangle.getY() + (int)rectangle.getHeight()));
310- points.add(new Point((int)rectangle.getX(),(int)rectangle.getY() + (int)rectangle.getHeight()));
311- segments.add(new LineSegment(null,points));
312- SegmentInfoCreator creator = new SegmentInfoCreator();
313- creator.createSegmentInfo(segments, folderPath,filename);
314-
315- File xmlfile = new File(folderPath+ filename + ".xml");
316- creator.createDSCFile(xmlfile.getAbsolutePath(),false);
317-
318- spreadTree.clearSelection();
319- AddDirectoryAction addDirectoryAction = new AddDirectoryAction(spreadTree.getRootSpreadDirectory().getFile(),spreadTree,spreadTree.getRootSpreadDirectory());
320- addDirectoryAction.exec(file);
321-
322- DefaultMutableTreeNode rootNode = spreadTree.getRootNode();
323- Enumeration enumeration = rootNode.children();
324- while( enumeration.hasMoreElements() ){
325- // 分割した各要素を取得します。
326- Object obj = (Object)enumeration.nextElement();
327- if(obj instanceof DefaultMutableTreeNode){
328- DefaultMutableTreeNode childNode = (DefaultMutableTreeNode)obj;
329- if(childNode.toString().equals(DICTIONARY)){
330- Object pathArray[] = {rootNode,childNode};
331- spreadTree.setSelectionPath(new TreePath(pathArray));
332- break;
333- }
334- }
335- }
336-
337- Spread spread = spreadTree.getSpreadByURI2(DICTIONARY + "/" + filename);
338-
339- // 作成ファイルを削除
340- new File(folderPath,filename + ".bmp").delete();
341- xmlfile.delete();
342-
343- return new Region(spread,new RectangleView(rectangle));
344- }
345- private void copyTransfer(String srcPath, String destPath) throws IOException {
346- FileChannel srcChannel = new FileInputStream(srcPath).getChannel();
347- FileChannel destChannel = new FileOutputStream(destPath).getChannel();
348- try {
349- srcChannel.transferTo(0, srcChannel.size(), destChannel);
350- } finally {
351- srcChannel.close();
352- destChannel.close();
353- }
354- }
355221 public void add(String word,Dictionary newDictionary){
356222 if(dictionaryMap.containsKey(word)){
357223 Dictionary dictionary = dictionaryMap.get(word);
@@ -367,101 +233,18 @@
367233 public void deleteRegion(String word,int index){
368234 if(dictionaryMap.containsKey(word)){
369235 Dictionary dictionary = dictionaryMap.get(word);
370- DictionaryRegion dictionaryRegion = dictionary.getDictionaryRegionList(index);
371- String deleteURL = dictionaryRegion.getRegion().getSpread().getURI();
372- deleteTree(deleteURL);
236+ dictionary.deleteDictionaryRegionList(index);
237+ ArrayList<DictionaryRegion> list = dictionary.getDictionaryRegionList();
238+ if(list.size() == 0){
239+ dictionaryMap.remove(word);
240+ }
373241 }
374242 }
375243 public void delete(String word){
376- Dictionary dictionary = null;
377244 if(dictionaryMap.containsKey(word)){
378- dictionary = dictionaryMap.get(word);
379- }else{
380- return;
245+ dictionaryMap.remove(word);
381246 }
382- ArrayList<DictionaryRegion> dictionaryRegionList = dictionary.getDictionaryRegionList();
383- ArrayList<String> deleteUrlList = new ArrayList<String>();
384- for(int i=0;i<dictionaryRegionList.size();i++){
385- DictionaryRegion dictionaryRegion = dictionaryRegionList.get(i);
386- deleteUrlList.add(dictionaryRegion.getRegion().getSpread().getURI());
387- }
388- for(int i=0;i<deleteUrlList.size();i++){
389- deleteTree(deleteUrlList.get(i));
390- }
391-
392247 }
393- protected void deleteTree(String url){
394- SpreadTree spreadTree = SpreadTree.getInstance();
395-
396- DefaultMutableTreeNode rootNode = spreadTree.getRootNode();
397- Enumeration enumeration = rootNode.children();
398- while( enumeration.hasMoreElements() ){
399- // 分割した各要素を取得します。
400- Object obj = (Object)enumeration.nextElement();
401- if(obj instanceof DefaultMutableTreeNode){
402- DefaultMutableTreeNode childNode = (DefaultMutableTreeNode)obj;
403- if(childNode.toString().equals(DICTIONARY)){
404- Enumeration enumeration2 = childNode.children();
405- while( enumeration2.hasMoreElements() ){
406- // 分割した各要素を取得します。
407- Object obj2 = (Object)enumeration2.nextElement();
408- if(obj2 instanceof DefaultMutableTreeNode){
409- DefaultMutableTreeNode childNode2 = (DefaultMutableTreeNode)obj2;
410- if(childNode2.getUserObject() instanceof Spread){
411- Spread deleteSpread = (Spread)childNode2.getUserObject();
412- if(deleteSpread.getURI().equals(url)){
413- spreadTree.clearSelection();
414- Object pathArray[] = {rootNode,childNode,childNode2};
415- spreadTree.setSelectionPath(new TreePath(pathArray));
416- spreadTree.remove();
417- return;
418- }
419- }
420- }
421- }
422- }
423- }
424- }
425-
426- }
427-
428- public void deleteByURL(String url){
429- Iterator<String> itr = dictionaryMap.keySet().iterator();
430- ArrayList<String> deleteWordList = new ArrayList<String>();
431- while(itr.hasNext()){
432- String word = itr.next();
433- Dictionary dictionary = dictionaryMap.get(word);
434- ArrayList<DictionaryRegion> dictionaryRegionList = dictionary.getDictionaryRegionList();
435- while(true){
436- int deleteIndex = -1;
437- for(int i=0;i<dictionaryRegionList.size();i++){
438- DictionaryRegion dictionaryRegion = dictionaryRegionList.get(i);
439- Region region = dictionaryRegion.getRegion();
440- if(region.getSpread().getURI().equals(url)){
441- deleteIndex = i;
442- break;
443- }
444- }
445- if(deleteIndex != -1){
446- dictionaryRegionList.remove(deleteIndex);
447- }else{
448- break;
449- }
450- }
451- if(dictionaryRegionList.size() == 0){
452- if(!deleteWordList.contains(word)){
453- deleteWordList.add(word);
454- }
455- }
456- }
457- for(int i=0;i<deleteWordList.size();i++){
458- String deleteWord = deleteWordList.get(i);
459- if(dictionaryMap.containsKey(deleteWord)){
460- dictionaryMap.remove(deleteWord);
461- }
462- }
463- }
464-
465248 public Dictionary getDictionary(String word){
466249 if(dictionaryMap.containsKey(word)){
467250 return dictionaryMap.get(word);
--- branches/tshimizu/src/smart_gs/dictionary/DictionaryRegion.java (revision 26)
+++ branches/tshimizu/src/smart_gs/dictionary/DictionaryRegion.java (revision 27)
@@ -10,13 +10,13 @@
1010
1111 public class DictionaryRegion {
1212 protected Region region;
13- protected String uri;
13+ protected String imageFile;
1414
15- public String getUri() {
16- return uri;
15+ public String getImageFile() {
16+ return imageFile;
1717 }
18- public void setUri(String uri) {
19- this.uri = uri;
18+ public void setImageFile(String imageFile) {
19+ this.imageFile = imageFile;
2020 }
2121 public Region getRegion() {
2222 return region;
--- branches/tshimizu/src/smart_gs/image_search/normal/swingui/ImageSearchDialog.java (revision 26)
+++ branches/tshimizu/src/smart_gs/image_search/normal/swingui/ImageSearchDialog.java (revision 27)
@@ -24,9 +24,6 @@
2424 import javax.swing.JPanel;
2525 import javax.swing.border.TitledBorder;
2626
27-import org.apache.commons.lang.StringUtils;
28-
29-import smart_gs.dictionary.DictionaryXML;
3027 import smart_gs.dictionary.image.ImageSearchFilterImpl;
3128 import smart_gs.dictionary.image.ImageSearchFilterTypeAImpl;
3229 import smart_gs.dictionary.image.ImageSearchFilterTypeBImpl;
@@ -40,7 +37,6 @@
4037 import smart_gs.logical.Preference;
4138 import smart_gs.logical.Region;
4239 import smart_gs.logical.Spread;
43-import smart_gs.logical.SpreadDirectory;
4440 import smart_gs.spread_selection.SetScopePanel;
4541 import smart_gs.util.BmpFileCreator;
4642 import smart_gs.util.ImageCropper;
@@ -151,76 +147,16 @@
151147 this.search(query);
152148
153149 }
154-
155- private void editSearch2(){
156- String folderPath = Spread.DSC_FOLDER_PATH;
157- folderPath = StringUtils.replace(folderPath, "\\", "/");
158- if(!folderPath.endsWith("/")){
159- folderPath += "/";
160- }
161- folderPath += "temp_";
162- if(!new File(folderPath).delete()){
163- File[] deleteFiles = new File(folderPath).listFiles();
164- if(deleteFiles != null){
165- for(int i=0;i<deleteFiles.length;i++){
166- deleteFiles[i].delete();
167- }
168- }
169- }
170- final Spread spread = region.getSpread();
171- folderPath += "/" + spread.getFileNameWithoutExtension() + "/";
172- if(!new File(folderPath).exists()){
173- new File(folderPath).mkdirs();
174- }
175- Image image2 = spread.getImage();
176- new BmpFileCreator(image2,image2.getWidth(null),image2.getHeight(null)).create(folderPath,spread.getFileNameWithoutExtension() + ".bmp",false);
177- List<LineSegment> segments = new ArrayList<LineSegment>();
178- List<Point2D> points = new ArrayList<Point2D>();
179- Rectangle rectangle2 = region.getView().getRectangle();
180- points.add(new Point((int)rectangle2.getX(),(int)rectangle2.getY()));
181- points.add(new Point((int)rectangle2.getX() + (int)rectangle2.getWidth(),(int)rectangle2.getY()));
182- points.add(new Point((int)rectangle2.getX() + (int)rectangle2.getWidth(),(int)rectangle2.getY() + (int)rectangle2.getHeight()));
183- points.add(new Point((int)rectangle2.getX(),(int)rectangle2.getY() + (int)rectangle2.getHeight()));
184- segments.add(new LineSegment(null,points));
185- SegmentInfoCreator creator = new SegmentInfoCreator();
186- creator.createSegmentInfo(segments, folderPath,spread.getFileNameWithoutExtension());
187- File file = new File(folderPath+ spread.getFileNameWithoutExtension() + ".xml");
188- creator.createDSCFile(file.getAbsolutePath(),false);
189- final String tempDscPath = folderPath;
190- Spread tempSpread = new Spread(spread.getVolume(),spread.getFile()){
191- public void checkDscFile() {
192- String a = region.getSpread().getName();
193- super.dscFile = new File(tempDscPath+"dsc/" + spread.getFileNameWithoutExtension() + ".dsc");
194- }
195- public File getDscFile() {
196- return super.dscFile;
197- }
198- };
199- tempSpread.checkDscFile();
200- GSQuery query = new GSQuery(tempSpread,image2,new File(folderPath+"dsc/" + spread.getFileNameWithoutExtension() + ".dsc"),rectangle);
201- this.search(query);
202- }
203-
150+
204151 private void search(GSQuery query){
205152 // List<Spread> spreads = this.getSpreadsToSearch();
206153
207154 List<Spread> spreads = this.scopePanel.getSpreadsToSearch();
208155 List<Spread> spreadsToSearch = new ArrayList<Spread>();
209- ArrayList<File> dictionaryDSCList = null;
210- if(this.scopePanel.isImageDictionary()){
211- for(int i=0;i<spreads.size();i++){
212- if(spreads.get(i).hasDscFile()){
213- spreadsToSearch.add(spreads.get(i));
214- }
156+ for(int i=0;i<spreads.size();i++){
157+ if(spreads.get(i).hasDscFile()){
158+ spreadsToSearch.add(spreads.get(i));
215159 }
216- }else{
217- for(int i=0;i<spreads.size();i++){
218- if(spreads.get(i).hasDscFile()){
219- if(!spreads.get(i).getURI().startsWith("smart://" + DictionaryXML.DICTIONARY )){
220- spreadsToSearch.add(spreads.get(i));
221- }
222- }
223- }
224160 }
225161
226162 SearchQueryAction searchAction = new SearchQueryAction(query,spreadsToSearch);
@@ -240,9 +176,8 @@
240176 }else{
241177 imageSearchFilterImpl = new ImageSearchFilterTypeAImpl();
242178 }
243- // FIXME フィルターをはずす。
244-// imageSearchFilterImpl.init();
245-// searchAction.addImageSearchFilter(imageSearchFilterImpl);
179+ imageSearchFilterImpl.init();
180+ searchAction.addImageSearchFilter(imageSearchFilterImpl);
246181 }
247182 searchAction.execute();
248183 List<SearchResult> results = searchAction.getResults();
@@ -273,10 +208,6 @@
273208 editSearch();
274209 return;
275210 }
276- if(scopePanel.isImageDictionary()){
277- editSearch2();
278- return;
279- }
280211 GSQuery query = new GSQuery(region.getSpread(),dscFile,rectangle);
281212 try{
282213 search(query);
--- branches/tshimizu/src/smart_gs/logical/SpreadTree.java (revision 26)
+++ branches/tshimizu/src/smart_gs/logical/SpreadTree.java (revision 27)
@@ -239,27 +239,7 @@
239239 String nameStr = deletespread.toString();
240240
241241
242- ///---------------辞書の場合はDSCも画像も削除する。
243- if(deletespread.getURI().startsWith("smart://" + DictionaryXML.DICTIONARY)){
244- DictionaryXML dictionaryXML = DictionaryXML.getInstance();
245- dictionaryXML.deleteByURL(deletespread.getURI());
246- try {
247- dictionaryXML.write();
248- dictionaryXML.load();
249- } catch (ParserConfigurationException e) {
250- // TODO 自動生成された catch ブロック
251- e.printStackTrace();
252- }
253- if(deletespread.getDscFile() != null){
254- deletespread.getDscFile().delete();
255- }
256- if(deletespread.getFile() != null){
257- deletespread.getFile().delete();
258- }
259- }
260- //----------------
261242
262-
263243 DefaultMutableTreeNode targetNode = (DefaultMutableTreeNode) path.getLastPathComponent();
264244 DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) targetNode.getParent();
265245
--- branches/tshimizu/src/com/hexidec/ekit/GSHTMLEditorSearchActionListner.java (revision 26)
+++ branches/tshimizu/src/com/hexidec/ekit/GSHTMLEditorSearchActionListner.java (revision 27)
@@ -2,4 +2,5 @@
22
33 public interface GSHTMLEditorSearchActionListner {
44 public void actionPerformed();
5+
56 }
--- branches/tshimizu/dictionary.xml (revision 26)
+++ branches/tshimizu/dictionary.xml (revision 27)
@@ -1,41 +1,113 @@
1-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
1+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
22 <dictionary>
33 <index word="sample">
4-<spread filename="&amp;rootpath;\images\letters\letters007.jpg" name="" uri="smart://letters007/">
5-<region name="" protection="normal" uri="smart://letters007/rect/1">
6-<view height="110.0" type="rect" width="46.0" x="705.0" y="553.0"/>
4+<spread filename="&amp;rootpath;\images\kaisei\l006040009l.png" name="" uri="smart://kaisei\l006040009l/">
5+<region name="" protection="normal" uri="line segment">
6+<view type="lasso">
7+<view type="line" x1="780.0" x2="780.0" y1="296.0" y2="487.0"/>
8+<view type="line" x1="780.0" x2="726.0" y1="487.0" y2="458.0"/>
9+<view type="line" x1="726.0" x2="714.0" y1="458.0" y2="318.0"/>
10+<view type="line" x1="714.0" x2="735.0" y1="318.0" y2="284.0"/>
11+<view type="line" x1="735.0" x2="735.0" y1="284.0" y2="284.0"/>
12+</view>
713 </region>
814 </spread>
915 </index>
10-<index word="人">
11-<spread filename="&amp;rootpath;\images\letters\letters001.jpg" name="" uri="smart://letters001/">
12-<region name="" protection="normal" uri="smart://letters001/rect/1">
13-<view height="52.0" type="rect" width="51.0" x="1738.0" y="514.0"/>
16+<index word="天地">
17+<spread filename="&amp;rootpath;\images\kaisei\l006040009l.png" name="" uri="smart://kaisei\l006040009l/">
18+<region name="" protection="normal" uri="line segment">
19+<view type="lasso">
20+<view type="line" x1="901.0" x2="966.0" y1="876.0" y2="868.0"/>
21+<view type="line" x1="966.0" x2="958.0" y1="868.0" y2="973.0"/>
22+<view type="line" x1="958.0" x2="899.0" y1="973.0" y2="979.0"/>
23+<view type="line" x1="899.0" x2="899.0" y1="979.0" y2="884.0"/>
24+<view type="line" x1="899.0" x2="899.0" y1="884.0" y2="884.0"/>
25+</view>
1426 </region>
1527 </spread>
16-<spread filename="&amp;rootpath;\images\letters\letters001.jpg" name="" uri="smart://letters001/">
17-<region name="" protection="normal" uri="smart://letters001/rect/3">
18-<view height="56.0" type="rect" width="62.0" x="1612.0" y="479.0"/>
28+</index>
29+<index word="数">
30+<spread filename="&amp;rootpath;\images\kaisei\l006040009l.png" name="" uri="smart://kaisei\l006040009l/">
31+<region name="" protection="normal" uri="line segment">
32+<view type="lasso">
33+<view type="line" x1="296.0" x2="372.0" y1="1098.0" y2="1104.0"/>
34+<view type="line" x1="372.0" x2="364.0" y1="1104.0" y2="1157.0"/>
35+<view type="line" x1="364.0" x2="327.0" y1="1157.0" y2="1167.0"/>
36+<view type="line" x1="327.0" x2="292.0" y1="1167.0" y2="1155.0"/>
37+<view type="line" x1="292.0" x2="296.0" y1="1155.0" y2="1098.0"/>
38+<view type="line" x1="296.0" x2="296.0" y1="1098.0" y2="1098.0"/>
39+</view>
1940 </region>
2041 </spread>
21-<spread filename="&amp;rootpath;\images\letters\letters001.jpg" name="" uri="smart://letters001/">
22-<region name="" protection="normal" uri="smart://letters001/rect/5">
23-<view height="54.0" type="rect" width="78.0" x="411.0" y="512.0"/>
42+<spread filename="&amp;rootpath;\images\kaisei\l006040009l.png" name="" uri="smart://kaisei\l006040009l/">
43+<region name="" protection="normal" uri="smart://kaisei\l006040009l/rect/8">
44+<view height="70.0" type="rect" width="72.0" x="804.0" y="515.0"/>
2445 </region>
2546 </spread>
47+<spread filename="&amp;rootpath;\images\kaisei\l006040009l.png" name="" uri="smart://kaisei\l006040009l/">
48+<region name="" protection="normal" uri="smart://kaisei\l006040009l/rect/8">
49+<view height="70.0" type="rect" width="72.0" x="804.0" y="515.0"/>
50+</region>
51+</spread>
52+<spread filename="&amp;rootpath;\images\kaisei\l006040009l.png" name="" uri="smart://kaisei\l006040009l/">
53+<region name="" protection="normal" uri="smart://kaisei\l006040009l/rect/2">
54+<view height="62.0" type="rect" width="70.0" x="979.0" y="357.0"/>
55+</region>
56+</spread>
2657 </index>
27-<index word="科学">
28-<spread filename="&amp;rootpath;\images\letters\letters001.jpg" name="" uri="smart://letters001/">
29-<region name="" protection="normal" uri="smart://letters001/rect/4">
30-<view height="153.0" type="rect" width="58.0" x="1252.0" y="429.0"/>
58+<index word="清濁">
59+<spread filename="&amp;rootpath;\images\kaisei\l006040009l.png" name="" uri="smart://kaisei\l006040009l/">
60+<region name="" protection="normal" uri="line segment">
61+<view type="lasso">
62+<view type="line" x1="985.0" x2="1044.0" y1="460.0" y2="466.0"/>
63+<view type="line" x1="1044.0" x2="1048.0" y1="466.0" y2="591.0"/>
64+<view type="line" x1="1048.0" x2="989.0" y1="591.0" y2="579.0"/>
65+<view type="line" x1="989.0" x2="979.0" y1="579.0" y2="460.0"/>
66+<view type="line" x1="979.0" x2="979.0" y1="460.0" y2="460.0"/>
67+<view type="line" x1="979.0" x2="979.0" y1="460.0" y2="460.0"/>
68+</view>
3169 </region>
3270 </spread>
3371 </index>
34-<index word="簡">
35-<spread filename="&amp;rootpath;\images\letters\letters001.jpg" name="" uri="smart://letters001/">
36-<region name="" protection="normal" uri="smart://letters001/rect/6">
37-<view height="78.0" type="rect" width="46.0" x="1727.0" y="936.0"/>
72+<index word="礼楽">
73+<spread filename="&amp;rootpath;\images\kaisei\l006040009l.png" name="" uri="smart://kaisei\l006040009l/">
74+<region name="" protection="normal" uri="line segment">
75+<view type="lasso">
76+<view type="line" x1="290.0" x2="359.0" y1="817.0" y2="806.0"/>
77+<view type="line" x1="359.0" x2="361.0" y1="806.0" y2="940.0"/>
78+<view type="line" x1="361.0" x2="296.0" y1="940.0" y2="940.0"/>
79+<view type="line" x1="296.0" x2="292.0" y1="940.0" y2="821.0"/>
80+<view type="line" x1="292.0" x2="292.0" y1="821.0" y2="821.0"/>
81+</view>
3882 </region>
3983 </spread>
4084 </index>
85+<index word="自然">
86+<spread filename="&amp;rootpath;\images\kaisei\l006040009l.png" name="" uri="smart://kaisei\l006040009l/">
87+<region name="" protection="normal" uri="line segment">
88+<view type="lasso">
89+<view type="line" x1="911.0" x2="958.0" y1="1098.0" y2="1094.0"/>
90+<view type="line" x1="958.0" x2="966.0" y1="1094.0" y2="1196.0"/>
91+<view type="line" x1="966.0" x2="917.0" y1="1196.0" y2="1208.0"/>
92+<view type="line" x1="917.0" x2="899.0" y1="1208.0" y2="1157.0"/>
93+<view type="line" x1="899.0" x2="913.0" y1="1157.0" y2="1096.0"/>
94+<view type="line" x1="913.0" x2="913.0" y1="1096.0" y2="1096.0"/>
95+</view>
96+</region>
97+</spread>
98+</index>
99+<index word="萬物">
100+<spread filename="&amp;rootpath;\images\kaisei\l006040009l.png" name="" uri="smart://kaisei\l006040009l/">
101+<region name="" protection="normal" uri="line segment">
102+<view type="lasso">
103+<view type="line" x1="903.0" x2="952.0" y1="523.0" y2="521.0"/>
104+<view type="line" x1="952.0" x2="966.0" y1="521.0" y2="622.0"/>
105+<view type="line" x1="966.0" x2="925.0" y1="622.0" y2="644.0"/>
106+<view type="line" x1="925.0" x2="895.0" y1="644.0" y2="610.0"/>
107+<view type="line" x1="895.0" x2="899.0" y1="610.0" y2="523.0"/>
108+<view type="line" x1="899.0" x2="899.0" y1="523.0" y2="523.0"/>
109+</view>
110+</region>
111+</spread>
112+</index>
41113 </dictionary>
旧リポジトリブラウザで表示