[Btrwiz-commits] CVS: btrwiz/src BtrWiz.java,1.5,1.6 ExcludeFilters.java,1.2,1.3 FindReplace.java,1.
Brought to you by:
howama
Update of /cvsroot/btrwiz/btrwiz/src In directory usw-pr-cvs1:/tmp/cvs-serv5826 Modified Files: BtrWiz.java ExcludeFilters.java FindReplace.java FolderSelect.java IncludeFilters.java ProgressPage.java Replacer.java SummaryPage.java Log Message: various chanes Index: BtrWiz.java =================================================================== RCS file: /cvsroot/btrwiz/btrwiz/src/BtrWiz.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** BtrWiz.java 17 Jul 2002 18:31:15 -0000 1.5 --- BtrWiz.java 18 Jul 2002 17:01:45 -0000 1.6 *************** *** 50,60 **** */ public void customise(){ WizardPage welcomePage = new WelcomePage(messages, this, null, messages.getString("WelcomeTitle") ); ! WizardPage selFolders = new FolderSelect(messages, this, welcomePage, messages.getString("SelFoldersTitle") ); ! WizardPage incFilters = new IncludeFilters(messages, this, selFolders, messages.getString("IncFiltersTitle") ); ! WizardPage excFilters = new ExcludeFilters(messages, this, selFolders, messages.getString("ExcFiltersTitle") ); ! WizardPage findReplace = new FindReplace(messages, this, welcomePage, messages.getString("FindReplaceTitle") ); ! WizardPage progress = new ProgressPage(messages, this, findReplace, messages.getString("ProgressTitle") ); ! WizardPage finished = new SummaryPage(messages, this, welcomePage, messages.getString("SummaryTitle") ); setFirstPage(welcomePage); --- 50,63 ---- */ public void customise(){ + Replacer btr = new Replacer(); WizardPage welcomePage = new WelcomePage(messages, this, null, messages.getString("WelcomeTitle") ); ! WizardPage selFolders = new FolderSelect(btr, messages, this, welcomePage, messages.getString("SelFoldersTitle") ); ! WizardPage incFilters = new IncludeFilters(btr, messages, this, selFolders, messages.getString("IncFiltersTitle") ); ! WizardPage excFilters = new ExcludeFilters(btr, messages, this, selFolders, messages.getString("ExcFiltersTitle") ); ! WizardPage findReplace = new FindReplace(btr, messages, this, welcomePage, messages.getString("FindReplaceTitle") ); ! ProgressPage progress = new ProgressPage(btr, messages, this, findReplace, messages.getString("ProgressTitle") ); ! WizardPage finished = new SummaryPage(btr, messages, this, welcomePage, messages.getString("SummaryTitle") ); ! ! btr.setProgressPage(progress); setFirstPage(welcomePage); *************** *** 74,77 **** --- 77,81 ---- findReplace.setFirstChild(progress); + progress.setNextScreen(finished); Index: ExcludeFilters.java =================================================================== RCS file: /cvsroot/btrwiz/btrwiz/src/ExcludeFilters.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ExcludeFilters.java 17 Jul 2002 18:24:41 -0000 1.2 --- ExcludeFilters.java 18 Jul 2002 17:01:45 -0000 1.3 *************** *** 12,15 **** --- 12,16 ---- class ExcludeFilters extends WizardPage{ private ResourceBundle messages; + private Replacer btr; private GtkVBox content; *************** *** 20,26 **** * Creates the page */ ! ExcludeFilters(ResourceBundle rb, WizardForm parent, WizardPage parentScreen, String title){ super(parent, parentScreen, title, null); messages = rb; content = new GtkVBox(false, 0); --- 21,28 ---- * Creates the page */ ! ExcludeFilters(Replacer rep, ResourceBundle rb, WizardForm parent, WizardPage parentScreen, String title){ super(parent, parentScreen, title, null); messages = rb; + btr = rep; content = new GtkVBox(false, 0); *************** *** 63,66 **** System.out.println("Remove Selected"); } ! } --- 65,71 ---- System.out.println("Remove Selected"); } ! ! public void postShow(){ ! btr.setExcFilt( new String[0] ); ! } } Index: FindReplace.java =================================================================== RCS file: /cvsroot/btrwiz/btrwiz/src/FindReplace.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** FindReplace.java 17 Jul 2002 15:09:28 -0000 1.1 --- FindReplace.java 18 Jul 2002 17:01:45 -0000 1.2 *************** *** 9,13 **** */ class FindReplace extends WizardPage{ ! private GtkVBox content; private ResourceBundle messages; --- 9,13 ---- */ class FindReplace extends WizardPage{ ! private Replacer btr; private GtkVBox content; private ResourceBundle messages; *************** *** 18,24 **** * Creates the screen */ ! FindReplace(ResourceBundle rb, WizardForm parent, WizardPage parentScreen, String title){ super(parent, parentScreen, title, null); messages = rb; content = new GtkVBox(false, 0); --- 18,25 ---- * Creates the screen */ ! FindReplace(Replacer rep, ResourceBundle rb, WizardForm parent, WizardPage parentScreen, String title){ super(parent, parentScreen, title, null); messages = rb; + btr = rep; content = new GtkVBox(false, 0); *************** *** 66,69 **** --- 67,83 ---- setButtons(true, messages.getString("Prev"), true, messages.getString("StartReplacing") ); setContent(content); + } + + public void postShow(){ + GtkTextIter start = null; + GtkTextIter end = null; + findBuffer.getStartIter(start); + findBuffer.getEndIter(end); + btr.setFindTxt( findBuffer.getText(start, end, true) ) ; + System.out.println(start+" "+end+"Storing find text: " + findBuffer.getText(start, end, true) ); + + replaceBuffer.getBounds(start, end); + btr.setReplaceTxt( replaceBuffer.getText( start, end, false ) ); + btr.setUseRegExp( usingRegExp.getActive() ); } } Index: FolderSelect.java =================================================================== RCS file: /cvsroot/btrwiz/btrwiz/src/FolderSelect.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** FolderSelect.java 17 Jul 2002 18:30:23 -0000 1.4 --- FolderSelect.java 18 Jul 2002 17:01:45 -0000 1.5 *************** *** 12,16 **** class FolderSelect extends WizardPage{ private ResourceBundle messages; ! /** The content container to be shown on the screen */ private GtkVBox content; --- 12,17 ---- class FolderSelect extends WizardPage{ private ResourceBundle messages; ! private Replacer btr; ! /** The content container to be shown on the screen */ private GtkVBox content; *************** *** 20,26 **** * Creates the graphical elements and sets up signals */ ! FolderSelect(ResourceBundle rb, WizardForm parent, WizardPage parentScreen, String title){ super(parent, parentScreen, title, null); messages = rb; content = new GtkVBox(false, 0); --- 21,28 ---- * Creates the graphical elements and sets up signals */ ! FolderSelect(Replacer rep, ResourceBundle rb, WizardForm parent, WizardPage parentScreen, String title){ super(parent, parentScreen, title, null); messages = rb; + btr = rep; content = new GtkVBox(false, 0); *************** *** 45,49 **** } ! GtkFileSelection selector; --- 47,54 ---- } ! public void postShow(){ ! btr.setRoot(dirEntry.getText()); ! } ! GtkFileSelection selector; Index: IncludeFilters.java =================================================================== RCS file: /cvsroot/btrwiz/btrwiz/src/IncludeFilters.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** IncludeFilters.java 17 Jul 2002 18:20:53 -0000 1.4 --- IncludeFilters.java 18 Jul 2002 17:01:45 -0000 1.5 *************** *** 12,26 **** class IncludeFilters extends WizardPage{ private ResourceBundle messages; private GtkVBox content; private GtkListStore filtList; private GtkEntry addTxt; /** * Creates the page */ ! IncludeFilters(ResourceBundle rb, WizardForm parent, WizardPage parentScreen, String title){ super(parent, parentScreen, title, null); messages = rb; content = new GtkVBox(false, 0); --- 12,30 ---- class IncludeFilters extends WizardPage{ private ResourceBundle messages; + private Replacer btr; private GtkVBox content; private GtkListStore filtList; private GtkEntry addTxt; + private GtkCheckButton useIncFilt; + private GtkVBox incWidgets; /** * Creates the page */ ! IncludeFilters(Replacer rep, ResourceBundle rb, WizardForm parent, WizardPage parentScreen, String title){ super(parent, parentScreen, title, null); messages = rb; + btr = rep; content = new GtkVBox(false, 0); *************** *** 31,36 **** content.add(headLbl); GtkLabel curFiltLbl = new GtkLabel( messages.getString("CurIncFilters") ); ! content.add(curFiltLbl); /* GtkListStore model; --- 35,47 ---- content.add(headLbl); + useIncFilt = new GtkCheckButton( messages.getString("UseIncFilt")); + useIncFilt.setActive(true); + useIncFilt.signalConnect("toggled", "toggleView", this); + content.add(useIncFilt); + + + incWidgets = new GtkVBox(false, 0); GtkLabel curFiltLbl = new GtkLabel( messages.getString("CurIncFilters") ); ! incWidgets.add(curFiltLbl); /* GtkListStore model; *************** *** 67,80 **** addBtn.signalConnect("clicked", "addFilter", this); addSpace.add(addBtn); ! content.add(addSpace); GtkButton rmBtn = new GtkButton( messages.getString("RmIncFilt") ); rmBtn.signalConnect("clicked", "rmSelected", this); ! content.add(rmBtn); setButtons(true, messages.getString("Prev"), true, messages.getString("Next") ); setContent(content); } ! /** * Event handler for pressing of 'add' button. --- 78,100 ---- addBtn.signalConnect("clicked", "addFilter", this); addSpace.add(addBtn); ! incWidgets.add(addSpace); GtkButton rmBtn = new GtkButton( messages.getString("RmIncFilt") ); rmBtn.signalConnect("clicked", "rmSelected", this); ! incWidgets.add(rmBtn); ! ! content.add(incWidgets); setButtons(true, messages.getString("Prev"), true, messages.getString("Next") ); setContent(content); } ! ! /** ! * Handles the display of the widgets, depedning on the status of the tuse ! * filters toggel button. ! */ ! private void toggleView(){ ! incWidgets.setSensitive( useIncFilt.getActive() ); ! } /** * Event handler for pressing of 'add' button. *************** *** 89,92 **** --- 109,116 ---- private void rmSelected(){ System.out.println("Remove Selected"); + } + public void postShow(){ + btr.setUseInc( useIncFilt.getActive() ); + btr.setIncFilt( new String[0] ); } } Index: ProgressPage.java =================================================================== RCS file: /cvsroot/btrwiz/btrwiz/src/ProgressPage.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ProgressPage.java 17 Jul 2002 18:25:21 -0000 1.2 --- ProgressPage.java 18 Jul 2002 17:01:45 -0000 1.3 *************** *** 9,17 **** */ class ProgressPage extends WizardPage{ ! private GtkVBox content; private ResourceBundle messages; private GtkProgressBar replaceProgress; ! private GtkFrame stageOneFrame; private GtkLabel filesAdded; --- 9,19 ---- */ class ProgressPage extends WizardPage{ ! private Replacer btr; ! private WizardForm wizard; ! private GtkVBox content; private ResourceBundle messages; private GtkProgressBar replaceProgress; ! private GtkFrame stageOneFrame; private GtkLabel filesAdded; *************** *** 27,43 **** * Creates the screen */ ! ProgressPage(ResourceBundle rb, WizardForm parent, WizardPage parentScreen, String title){ super(parent, parentScreen, title, null); messages = rb; content = new GtkVBox(false, 0); stageOneFrame = new GtkFrame(null); GtkLabel stOneHead = new GtkLabel( messages.getString("StageOneHead") ); ! stageOneFrame.add(stOneHead); filesAdded = new GtkLabel( messages.getString("FilesAdded")+"0" ); ! stageOneFrame.add(filesAdded); ! searchingFolders = new GtkLabel( messages.getstring("PlzWait") ); ! stageOneFrame.add(searchingFolders); content.add(stageOneFrame); --- 29,49 ---- * Creates the screen */ ! ProgressPage(Replacer rep, ResourceBundle rb, WizardForm parent, WizardPage parentScreen, String title){ super(parent, parentScreen, title, null); messages = rb; + wizard = parent; + btr = rep; content = new GtkVBox(false, 0); stageOneFrame = new GtkFrame(null); + GtkVBox stageOneBox = new GtkVBox(false, 3); + stageOneFrame.add(stageOneBox); GtkLabel stOneHead = new GtkLabel( messages.getString("StageOneHead") ); ! stageOneBox.add(stOneHead); filesAdded = new GtkLabel( messages.getString("FilesAdded")+"0" ); ! stageOneBox.add(filesAdded); ! searchingFolders = new GtkLabel( messages.getString("PlzWait") ); ! stageOneBox.add(searchingFolders); content.add(stageOneFrame); *************** *** 69,102 **** * Sets all values as zero */ ! protected void zeroProgress(){ stageOneFrame.setSensitive(true); stageTwoFrame.setSensitive(false); replaceProgress.setFraction(0); ! private GtkLabel filesAdded; ! private GtkLabel searchingFolders; ! private int fileCount = 0; ! private int done = 0; ! private GtkLabel processed; ! private GtkLabel curFile; } /** - * Sets up the screen for stage one to progress. */ ! protected void startStageOne(){ } /** */ ! protected void startStageTwo(){ } /** */ ! protected void stageOneProgress(){ ! } ! /** */ ! protected void stageTwoProgress(){ } } --- 75,124 ---- * Sets all values as zero */ ! synchronized void zeroProgress(){ stageOneFrame.setSensitive(true); stageTwoFrame.setSensitive(false); replaceProgress.setFraction(0); ! filesAdded.setLabel( messages.getString("FilesAdded")+"0" ); ! searchingFolders.setLabel( messages.getString("PlzWait")); ! fileCount = 0; ! done = 0; ! processed.setLabel( messages.getString("FilesProcessed") + done +"/"+fileCount); ! curFile.setLabel( messages.getString("CurFile") + messages.getString("NoCur")); } /** */ ! synchronized void startStageTwo(){ ! stageOneFrame.setSensitive(false); ! stageTwoFrame.setSensitive(true); ! filesAdded.setLabel( messages.getString("FilesAdded")+fileCount ); ! searchingFolders.setLabel( messages.getString("DoneScanning")); } /** */ ! synchronized void stageOneProgress(int found){ ! fileCount = found; ! filesAdded.setLabel( messages.getString("FilesAdded")+found ); } /** */ ! synchronized void stageTwoProgress(int filesCompleted, String current){ ! done = filesCompleted; ! processed.setLabel( messages.getString("FilesProcessed") + done +"/"+fileCount); ! curFile.setLabel( messages.getString("CurFile") + current); ! replaceProgress.setFraction(done / fileCount); } ! /* */ ! public void preShow(){ ! Thread btrThread = new Thread(btr); ! btrThread.start(); ! } + /** + * This is called by the replacer thread when the task has been successful. + */ + protected void success(){ + wizard.onNext(); } } Index: Replacer.java =================================================================== RCS file: /cvsroot/btrwiz/btrwiz/src/Replacer.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Replacer.java 17 Jul 2002 15:16:25 -0000 1.1 --- Replacer.java 18 Jul 2002 17:01:45 -0000 1.2 *************** *** 1,9 **** /** * Performs replace operations, sending progress reports to the progress page. */ ! public class Replacer{ /** Root Directory for scanning */ private String rootDir; /** Filters for inclusion. Order Allow, Deny */ private String[] incFilters; --- 1,17 ---- + import gnu.regexp.*; + import java.lang.reflect.Array; + import java.io.*; + import java.util.ResourceBundle; + import java.util.Locale; + import java.util.*; /** * Performs replace operations, sending progress reports to the progress page. */ ! public class Replacer implements Runnable{ /** Root Directory for scanning */ private String rootDir; + /** If true, include filters should be used */ + private boolean useIncFilters; /** Filters for inclusion. Order Allow, Deny */ private String[] incFilters; *************** *** 17,23 **** --- 25,214 ---- * expressions */ private boolean regExp; + /** The progress WizardPage, used for updating progress reports. */ + private ProgressPage progress; + /** When false, the thread will terminate */ + private boolean runFreely = true; + private static ResourceBundle messages; + private Stack toScan; // Folders to be scanned + private Stack toSearch; // files to be searched + private int fileCount = 0; + private int completed = 0; + private int replacementsMade =0; + private long started; + private long timeTaken = 0; + + public Replacer(){ + messages = ResourceBundle.getBundle("BTRStrings", Locale.getDefault() ); + } + public void setProgressPage( ProgressPage progScreen){ + progress = progScreen; + } + /** + * The main thread for performing the replace operations. + */ + public void run(){ + started = System.currentTimeMillis(); + System.out.println( messages.getString("Started") ); + System.out.println( messages.getString("RootDir")+ rootDir); + System.out.println( "Find Txt: "+findText ); + System.out.println( "Replace Txt: "+replaceText ); + progress.zeroProgress(); + toScan = new Stack(); + toScan.push(rootDir); + toSearch = new Stack(); + fileCount = 0; + completed = 0; + + while (toScan.empty() == false){ + scanDir((String) toScan.pop()); + } + replacementsMade = 0; + progress.startStageTwo(); + while (toSearch.empty() ==false){ + searchFile( (String) toSearch.pop() ); + } + timeTaken = System.currentTimeMillis() - started; + progress.success(); + } + + /** + * Performs search and replace on a single file. + */ + private void searchFile(String fileName){ + System.out.println("Scanning file: "+fileName); + progress.stageTwoProgress(completed, fileName); + BufferedReader fileBR; + try{ + fileBR = new BufferedReader( new FileReader(fileName) ); + }catch(IOException e){ + System.out.println("Error opening "+fileName+e); + return; + } + String file = ""; + try{ + file += fileBR.readLine() + System.getProperty("line.separator"); + }catch(EOFException c){ + }catch(IOException e){ + System.out.println("Error Reading file: "+e); + } + try{ + fileBR.close(); + }catch(Exception e){ + System.out.println("Error closing "+fileName+e); + } + int curRepMade =0; + + if (regExp){ + try{ + + }catch(Exception e){} + }else{ + while (file.indexOf(findText) > - 1){ + System.out.println("Found one!!!"); + curRepMade++; + file = file.substring(0, file.indexOf(findText)) + replaceText + file.substring( file.indexOf(findText) + replaceText.length() ) ; + } + } + if(curRepMade > 0){ + // save the file + + } + replacementsMade += curRepMade; + completed++; + } + private void scanDir( String dirToScan ){ + for (int i =0; i < Array.getLength( excFilters ); i++){ + if ( excFilters[i].equals("")){ continue; } + try{ + RE exp = new RE( excFilters[i] ); + if (exp.isMatch(toScan) ){ + // ignore the entry + return; + } + }catch(REException e){ + System.out.println("RE Exception"); + } + } + + File dir = new File(dirToScan); + File[] dirFiles = dir.listFiles(); + if ( Array.getLength(dirFiles) >0){ + for (int i = 0; i< Array.getLength(dirFiles); i++){ + if (dirFiles[i].isDirectory()){ + scanDir(dirFiles[i].toString()); + }else{ + // Add the file to the list + /* + * TODO: TEST FILTERS + */ + toSearch.push( dirFiles[i].toString() ); + fileCount++; + progress.stageOneProgress(fileCount); + } + } } + } + + + /** + * Requests to stop the thread. + */ + public void pleaseStop(){ + runFreely = false; + } + /* + */ + public void setRoot(String root){ + rootDir = root; + } + /** + */ + public void setUseInc(boolean useInc){ + useIncFilters = useInc; + } + /* + */ + public void setIncFilt(String[] incFilt){ + incFilters = incFilt; + } + /** + */ + public void setExcFilt(String[] excFilt){ + excFilters = excFilt; + } + /** + */ + public void setFindTxt(String toFind){ + findText = toFind; + } + /** + */ + public void setReplaceTxt(String replaceWith){ + replaceText = replaceWith; + } + + /** + */ + public void setUseRegExp(boolean useRE){ + regExp = useRE; + } + /** + */ + public long getTimeTaken(){ + return timeTaken; + } + + /** + */ + public int getFileCount(){ + return completed; + } + /** + */ + public int getReplacementCount(){ + return replacementsMade; + } Index: SummaryPage.java =================================================================== RCS file: /cvsroot/btrwiz/btrwiz/src/SummaryPage.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SummaryPage.java 17 Jul 2002 15:10:49 -0000 1.1 --- SummaryPage.java 18 Jul 2002 17:01:45 -0000 1.2 *************** *** 9,22 **** */ class SummaryPage extends WizardPage{ ! private GtkVBox content; private ResourceBundle messages; private GtkProgressBar replaceProgress ; /* * Creates the screen */ ! SummaryPage(ResourceBundle rb, WizardForm parent, WizardPage parentScreen, String title){ super(parent, parentScreen, title, null); messages = rb; --- 9,28 ---- */ class SummaryPage extends WizardPage{ ! private Replacer btr; private GtkVBox content; private ResourceBundle messages; private GtkProgressBar replaceProgress ; + private GtkLabel timeTaken; + private GtkLabel fScanned; + private GtkLabel replacements; + private GtkLabel cumScanned; + private GtkLabel cumReplaced; /* * Creates the screen */ ! SummaryPage(Replacer rep, ResourceBundle rb, WizardForm parent, WizardPage parentScreen, String title){ super(parent, parentScreen, title, null); + btr = rep; messages = rb; *************** *** 26,32 **** --- 32,58 ---- content.add(headLbl); + timeTaken = new GtkLabel( messages.getString("TimeTaken")+ "Unknown"); + fScanned = new GtkLabel(messages.getString("FScanned")+ "0"); + replacements = new GtkLabel( messages.getString("RepMade")+0); + content.add(timeTaken); + content.add(fScanned); + content.add(replacements); + + // cumScanned = new GtkLabel( messages.getString("CumFScanned") + 0); + // cumReplaced = new GtkLabel( messages.getString("CumReplaced")+0); + // content.add(cumScanned); + // content.add(cumReplaced); + setButtons(false, null, true, messages.getString("StartAgain") ); setContent(content); + } + public void preShow(){ + System.out.println("Summary Page Pre Show proc"); + long time = btr.getTimeTaken() ; + time = time / 1000; + timeTaken.setLabel( messages.getString("TimeTaken")+ time + messages.getString("Seconds") ); + fScanned.setLabel( messages.getString("FScanned") + btr.getFileCount() ); + replacements.setLabel( messages.getString("RepMade") + btr.getReplacementCount() ); } } |