Update of /cvsroot/phpeclipse/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4871/src/net/sourceforge/phpeclipse/wiki/actions Modified Files: ProblemConsole.java OpenWikiLinkEditorAction.java CreateFilesJob.java CreateFilesFromLinksEditorAction.java Log Message: RefreshJob loads max 10 articles at a time; there's a delay of 1 second for the next 10 articles. Index: CreateFilesFromLinksEditorAction.java =================================================================== RCS file: /cvsroot/phpeclipse/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/CreateFilesFromLinksEditorAction.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CreateFilesFromLinksEditorAction.java 30 Jan 2005 21:27:21 -0000 1.2 --- CreateFilesFromLinksEditorAction.java 31 Jan 2005 19:57:09 -0000 1.3 *************** *** 13,48 **** public void openWikiLinkOnSelection() { IDocument doc = getDocument(); ! // ITextSelection selection = (ITextSelection) editor.getSelectionProvider().getSelection(); ! // int pos = selection.getOffset(); ! ArrayList startPositionList = new ArrayList(); ! char[] text = doc.get().toCharArray(); ! try { ! char ch = ' '; ! int i = 0; ! int startPos = -1; ! while (true) { ! ch = text[i++]; ! switch (ch) { ! case '[': ! ch = text[i++]; ! if (ch == '[') { ! startPos = i; ! } ! break; ! case ']': ! ch = text[i++]; ! if (ch == ']' && startPos != (-1)) { ! startPositionList.add(new Integer(startPos)); ! } ! break; ! case '\r': ! case '\n': ! startPos = -1; ! break; ! } ! } ! } catch (IndexOutOfBoundsException e) { ! // ignore it ! } HashSet wikiNames = new HashSet(); ArrayList filesList = new ArrayList(); --- 13,18 ---- public void openWikiLinkOnSelection() { IDocument doc = getDocument(); ! ArrayList startPositionList = getLinksStartingPosition(doc); ! HashSet wikiNames = new HashSet(); ArrayList filesList = new ArrayList(); *************** *** 51,58 **** Integer posInteger; IFile currentFile = ((IFileEditorInput) editor.getEditorInput()).getFile(); for (int i = 0; i < startPositionList.size(); i++) { posInteger = (Integer) startPositionList.get(i); wikiTitle = getWikiTitle(editor, doc, posInteger.intValue()); ! if (wikiTitle != null && !wikiTitle.equals("")) { if (!wikiNames.contains(wikiTitle)) { --- 21,29 ---- Integer posInteger; IFile currentFile = ((IFileEditorInput) editor.getEditorInput()).getFile(); + for (int i = 0; i < startPositionList.size(); i++) { posInteger = (Integer) startPositionList.get(i); wikiTitle = getWikiTitle(editor, doc, posInteger.intValue()); ! if (wikiTitle != null && !wikiTitle.equals("")) { if (!wikiNames.contains(wikiTitle)) { *************** *** 62,68 **** wikiNames.add(wikiTitle); } ! } } ! if (filesList.size() > 0) { IFile[] files = new IFile[filesList.size()]; --- 33,39 ---- wikiNames.add(wikiTitle); } ! } } ! if (filesList.size() > 0) { IFile[] files = new IFile[filesList.size()]; *************** *** 70,73 **** --- 41,45 ---- filesList.toArray(files); wikiList.toArray(wikiTitles); + Job job = new CreateFilesJob(files, wikiTitles); // job.setRule(createRule(files)); *************** *** 75,95 **** job.setUser(true); job.schedule(); } - // - // - // Iterator iter = wikiNames.iterator(); - // while (iter.hasNext()) { - // openWikiFile(file, (String) iter.next(), false); - // } } ! // public void openWikiFile(IFile cfile, String word, boolean openEditor) { ! // if (word != null && !word.equals("")) { ! // IFile file = getWikiFile(cfile, word); ! // try { ! // createNewFileIfNeeded(file, word); ! // } catch (Exception e) { ! // } ! // } ! // } } \ No newline at end of file --- 47,91 ---- job.setUser(true); job.schedule(); + } } ! /** ! * @param doc ! * @return ! */ ! private ArrayList getLinksStartingPosition(IDocument doc) { ! ArrayList startPositionList = new ArrayList(); ! char[] text = doc.get().toCharArray(); ! try { ! char ch = ' '; ! int i = 0; ! int startPos = -1; ! while (true) { ! ch = text[i++]; ! switch (ch) { ! case '[': ! ch = text[i++]; ! if (ch == '[') { ! startPos = i; ! } ! break; ! case ']': ! ch = text[i++]; ! if (ch == ']' && startPos != (-1)) { ! startPositionList.add(new Integer(startPos)); ! startPos = -1; ! } ! break; ! case '\r': ! case '\n': ! startPos = -1; ! break; ! } ! } ! } catch (IndexOutOfBoundsException e) { ! // ignore it ! } ! return startPositionList; ! } } \ No newline at end of file Index: ProblemConsole.java =================================================================== RCS file: /cvsroot/phpeclipse/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/ProblemConsole.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ProblemConsole.java 19 Jan 2005 22:18:46 -0000 1.1 --- ProblemConsole.java 31 Jan 2005 19:56:57 -0000 1.2 *************** *** 20,24 **** myConsole = new MessageConsole("Wikipedia Editor Problems", null); ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[] { myConsole }); - ; ConsolePlugin.getDefault().getConsoleManager().showConsoleView(myConsole); // layout.addView(IConsoleConstants.ID_CONSOLE_VIEW, IPageLayout.BOTTOM, .5f,IPageLayout.ID_EDITOR_AREA); --- 20,23 ---- Index: OpenWikiLinkEditorAction.java =================================================================== RCS file: /cvsroot/phpeclipse/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/OpenWikiLinkEditorAction.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** OpenWikiLinkEditorAction.java 30 Jan 2005 21:27:21 -0000 1.4 --- OpenWikiLinkEditorAction.java 31 Jan 2005 19:56:58 -0000 1.5 *************** *** 129,136 **** return new String(word.toCharArray(), wikiLinkStart, wikiLinkEnd - wikiLinkStart); } ! } catch (BadLocationException e) { } ! return ""; } --- 129,136 ---- return new String(word.toCharArray(), wikiLinkStart, wikiLinkEnd - wikiLinkStart); } ! } catch (Exception e) { } ! return null; } *************** *** 146,151 **** String wikiTitle = getWikiTitle(editor, doc, pos); ! IFileEditorInput ei = (IFileEditorInput) editor.getEditorInput(); ! openWikiFile(ei.getFile(), wikiTitle, true); } --- 146,153 ---- String wikiTitle = getWikiTitle(editor, doc, pos); ! if (wikiTitle != null && !wikiTitle.equals("")) { ! IFileEditorInput ei = (IFileEditorInput) editor.getEditorInput(); ! openWikiFile(ei.getFile(), wikiTitle, true); ! } } *************** *** 174,178 **** Page page = new Page("", wikiTitle, ""); page.createXMLFile(file, false); ! // createXMLFile(wikiTitle, file, false); IDE.openEditor(WikiEditorPlugin.getDefault().getActivePage(), file, true); --- 176,180 ---- Page page = new Page("", wikiTitle, ""); page.createXMLFile(file, false); ! // createXMLFile(wikiTitle, file, false); IDE.openEditor(WikiEditorPlugin.getDefault().getActivePage(), file, true); Index: CreateFilesJob.java =================================================================== RCS file: /cvsroot/phpeclipse/net.sourceforge.phpeclipse.wiki/src/net/sourceforge/phpeclipse/wiki/actions/CreateFilesJob.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** CreateFilesJob.java 30 Jan 2005 21:27:21 -0000 1.3 --- CreateFilesJob.java 31 Jan 2005 19:56:59 -0000 1.4 *************** *** 38,41 **** --- 38,43 ---- ByteArrayInputStream source = new ByteArrayInputStream(buffer); ProblemConsole console = new ProblemConsole(); + boolean showConsole = WikiEditorPlugin.getDefault().getPreferenceStore().getBoolean(WikiEditorPlugin.CONSOLE_OUTPUT); + for (int i = 0; i < files.length; i++) { file = files[i]; *************** *** 52,55 **** --- 54,60 ---- Page page = new Page("", wikiTitle, ""); page.createXMLFile(file, false); + if (showConsole) { + console.println("Title: "+wikiTitle+" =>File: " + file.getLocation().toString() + "created\n"); + } } else { String message = "File: " + file.getLocation().toString() + "\n==>file already exists!"; |