[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() );
}
}
|