This module started to be dependent on vcscore, since all generic classes were moved there. merged-based_on_vcscore
authormentlicher@netbeans.org
Mon, 22 Jan 2001 20:58:06 +0000
changeset 44830239f65d5dd
parent 447 7b59c1c62ed5
child 449 c74b228f7aed
This module started to be dependent on vcscore, since all generic classes were moved there.
The remaining stuff changed its imports to use classes from vcscore.
vcscvs/build.xml
vcscvs/manifest.mf
vcscvs/src/org/netbeans/modules/vcs/cmdline/Bundle.properties
vcscvs/src/org/netbeans/modules/vcs/cmdline/CommandLines.properties
vcscvs/src/org/netbeans/modules/vcs/cmdline/Cust1WorkPanel.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/Cust2ServerPanel.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/Cust3CheckoutPanel.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/Cust4MountPanel.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/CvsCustomizer.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/CvsFileSystem.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/CvsFileSystemBeanInfo.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/NewCvsCustomizer.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/Bundle.properties
vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsBranches.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsCustomizerCommand.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsDiff.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsLogInfo.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsModuleParser.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsModuleSelector.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsModuleSelectorDialog.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsRevisionExplorer.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsRevisionSelector.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/list/CvsListCommand.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/list/CvsListRecursiveCommand.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/passwd/CVSPasswd.java
vcscvs/src/org/netbeans/modules/vcs/cmdline/passwd/LoginDialog.java
     1.1 --- a/vcscvs/build.xml	Mon Jan 22 13:24:46 2001 +0000
     1.2 +++ b/vcscvs/build.xml	Mon Jan 22 20:58:06 2001 +0000
     1.3 @@ -23,6 +23,7 @@
     1.4          <pathelement location="../utilities/netbeans/modules/utilities.jar"/>
     1.5          <pathelement location="../editor/netbeans/modules/ext/nb-editor.jar"/>
     1.6          <pathelement location="../openidex/netbeans/lib/ext/openidex.jar"/>
     1.7 +        <pathelement location="../vcscore/netbeans/modules/vcscore.jar"/>
     1.8          <fileset dir="../openide/netbeans/lib">
     1.9            <include name="openide*.jar" />
    1.10          </fileset>
     2.1 --- a/vcscvs/manifest.mf	Mon Jan 22 13:24:46 2001 +0000
     2.2 +++ b/vcscvs/manifest.mf	Mon Jan 22 20:58:06 2001 +0000
     2.3 @@ -3,7 +3,7 @@
     2.4  OpenIDE-Module-Display-Category: Version Control
     2.5  OpenIDE-Module-Specification-Version: 1.6
     2.6  OpenIDE-Module-Implementation-Version: @BUILD_NUMBER_SUBST@
     2.7 -OpenIDE-Module-Module-Dependencies: org.openidex.util/1, org.netbeans.modules.editor/1, org.netbeans.modules.utilities/1
     2.8 +OpenIDE-Module-Module-Dependencies: org.openidex.util/1, org.netbeans.modules.editor/1, org.netbeans.modules.utilities/1, org.netbeans.modules.vcscore/1
     2.9  OpenIDE-Module-Package-Dependencies: org.apache.regexp[RE]
    2.10  
    2.11  Name: org/netbeans/modules/vcs/cmdline/CvsFileSystem.class
    2.12 @@ -11,5 +11,3 @@
    2.13  OpenIDE-Module-Class: Filesystem
    2.14  Help: org.netbeans.modules.vcs.cmdline.CvsFileSystem.CREATE
    2.15  
    2.16 -Name: org/netbeans/modules/vcs/search/VcsSearchType.class
    2.17 -OpenIDE-Module-Class: Service
     3.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/Bundle.properties	Mon Jan 22 13:24:46 2001 +0000
     3.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/Bundle.properties	Mon Jan 22 20:58:06 2001 +0000
     3.3 @@ -121,27 +121,27 @@
     3.4  
     3.5  # rootDirectory
     3.6  PROP_rootDirectory=Working Directory
     3.7 -HINT_rootDirectory=Root working directory for this VCS filesystem.
     3.8 +HINT_rootDirectory=Root working directory for this CVS filesystem.
     3.9  
    3.10  # debug
    3.11  PROP_debug=Debugging
    3.12 -HINT_debug=Enable debugging of VCS commands.
    3.13 +HINT_debug=Enable debugging of CVS commands.
    3.14  
    3.15  # variables
    3.16 -PROP_variables=Variables
    3.17 -HINT_variables=User-defined variables.
    3.18 +#PROP_variables=Variables
    3.19 +#HINT_variables=User-defined variables.
    3.20  
    3.21  # commands
    3.22 -PROP_commands=Commands
    3.23 -HINT_commands=User-defined commands.
    3.24 +#PROP_commands=Commands
    3.25 +#HINT_commands=User-defined commands.
    3.26  
    3.27  # cacheId
    3.28 -PROP_cacheId=Cache Id
    3.29 -HINT_cacheId=Directory under vcs/cache/ in which cached data is to be kept.
    3.30 +#PROP_cacheId=Cache Id
    3.31 +#HINT_cacheId=Directory under vcs/cache/ in which cached data is to be kept.
    3.32  
    3.33  # config
    3.34 -PROP_config=Configuration
    3.35 -HINT_config=Selected configuration of variables and commands.
    3.36 +#PROP_config=Configuration
    3.37 +#HINT_config=Selected configuration of variables and commands.
    3.38  
    3.39  # lock
    3.40  PROP_lock=Locking
    3.41 @@ -158,21 +158,162 @@
    3.42  # [PENDING] the next three properties have much too long names, pls. shorten
    3.43  
    3.44  # execute pre commit command which downloads the commit template
    3.45 -PROP_executePreCommit=Check for Message Template Before Commit
    3.46 -HINT_executePreCommit=Find the message template file before each commit command.
    3.47 +#PROP_executePreCommit=Check for Message Template Before Commit
    3.48 +#HINT_executePreCommit=Find the message template file before each commit command.
    3.49  
    3.50  # Ask for additional user parameters
    3.51  PROP_acceptUserParams=Ask for Advanced Options
    3.52  HINT_acceptUserParams=Ask for additional options to every command.
    3.53  
    3.54  # Run Refresh command on refresh of file statuses. (If working off-line this should be off.)
    3.55 -PROP_runRefreshCommand=Run CVS Command to Refresh the Status of Files
    3.56 -HINT_runRefreshCommand=Automatically run a CVS command to retrieve the latest file status.
    3.57 +#PROP_runRefreshCommand=Run CVS Command to Refresh the Status of Files
    3.58 +#HINT_runRefreshCommand=Automatically run a CVS command to retrieve the latest file status.
    3.59 +#PROP_offLineMode=Offline mode
    3.60 +#HINT_offLineMode=Refresh will not try to connect to the remote repository server
    3.61  
    3.62  # Process all files
    3.63  PROP_processAllFiles=Process All Files
    3.64  HINT_processAllFiles=Apply CVS commands to all files associated with the selected node.
    3.65  
    3.66 +# annotation pattern
    3.67 +PROP_annotationPattern=Annotation pattern
    3.68 +HINT_annotationPattern=Set the file annotation pattern
    3.69 +
    3.70 +#--------------------------------------------------------------------
    3.71 +# CvsFileSystem
    3.72 +
    3.73 +CTL_Status_UpToDate=Up-to-date
    3.74 +CTL_Status_LocallyModified=Locally Modified
    3.75 +CTL_Status_LocallyAdded=Locally Added
    3.76 +CTL_Status_LocallyRemoved=Locally Removed
    3.77 +CTL_Status_NeedsCheckout=Needs Checkout
    3.78 +CTL_Status_NeedsPatch=Needs Patch
    3.79 +CTL_Status_NeedsMerge=Needs Merge
    3.80 +# [PENDING] would "Merge Conflict" suffice?
    3.81 +# - O.K., let's make it shorter:
    3.82 +CTL_Status_FileHadConflictOnMerge=Merge Conflict
    3.83 +CTL_Status_Unknown=Unknown
    3.84 +
    3.85 +LAB_CVSFileSystemName=CVS
    3.86 +
    3.87 +# CMD_..._AN  --  The advanced name of the command
    3.88 +CMD_Refresh=Refresh
    3.89 +CMD_RefreshRecursively=Refresh Recursively
    3.90 +CMD_CheckOut=Check Out
    3.91 +# Looks like the CVS command itself.
    3.92 +# - this is the name of cvs command which is to be run for user info.
    3.93 +# NOI18N
    3.94 +CMD_CheckOut_AN=checkout
    3.95 +CMD_CheckOutModule=Check Out Module
    3.96 +## MK -> not in checkout anymore $[? MODULE_NAME] [${MODULE_NAME}] [.]
    3.97 +CMD_ExportByDate=Export by Date
    3.98 +# NOI18N
    3.99 +CMD_Export_AN=export
   3.100 +CMD_ExportByRevision=Export by Revision
   3.101 +CMD_ExportModuleByDate=Export Module by Date
   3.102 +CMD_ExportModuleByRevision=Export Module by Revision
   3.103 +CMD_Login=Login
   3.104 +CMD_Init=Init
   3.105 +# NOI18N
   3.106 +CMD_Init_AN=init
   3.107 +CMD_Update=Update
   3.108 +# NOI18N
   3.109 +CMD_Update_AN=update
   3.110 +CMD_UpdateModule=Update Module
   3.111 +CMD_Commit=Commit
   3.112 +# NOI18N
   3.113 +CMD_Commit_AN=commit
   3.114 +CMD_CommitModule=Commit Module
   3.115 +CMD_Remove=Remove
   3.116 +# NOI18N
   3.117 +CMD_Remove_AN=remove
   3.118 +CMD_Lock=Lock
   3.119 +# NOI18N
   3.120 +CMD_Lock_AN=admin -l
   3.121 +CMD_Unlock=Unlock
   3.122 +# NOI18N
   3.123 +CMD_Unlock_AN=admin -u
   3.124 +CMD_Edit=Edit
   3.125 +# NOI18N
   3.126 +CMD_Edit_AN=edit
   3.127 +CMD_Unedit=Undo Edit
   3.128 +# NOI18N
   3.129 +CMD_Unedit_AN=unedit
   3.130 +CMD_Editors=Editors
   3.131 +# NOI18N
   3.132 +CMD_Editors_AN=editors
   3.133 +CMD_WatchOn=Watch On
   3.134 +# NOI18N
   3.135 +CMD_WatchOn_AN=watch on
   3.136 +CMD_WatchOff=Watch Off
   3.137 +# NOI18N
   3.138 +CMD_WatchOff_AN=watch off
   3.139 +CMD_WatchSet=Set Watch
   3.140 +# NOI18N
   3.141 +CMD_WatchSet_AN=watch add
   3.142 +CMD_Watchers=Watchers
   3.143 +# NOI18N
   3.144 +CMD_Watchers_AN=watchers
   3.145 +CMD_Status=Status
   3.146 +# NOI18N
   3.147 +CMD_Status_AN=status
   3.148 +CMD_Log=Log
   3.149 +# NOI18N
   3.150 +CMD_Log_AN=log
   3.151 +CMD_Add=Add
   3.152 +# NOI18N
   3.153 +CMD_Add_AN=add
   3.154 +CMD_Import=Import
   3.155 +# NOI18N
   3.156 +CMD_Import_AN=import
   3.157 +CMD_ImportModule=Import Module
   3.158 +CMD_ImportAndCheckout=Import and Checkout
   3.159 +# NOI18N
   3.160 +CMD_ImportAndCheckout_AN=import, checkout
   3.161 +CMD_UpdateRevision=Update Revision
   3.162 +# NOI18N
   3.163 +CMD_UpdateRevision_AN=update -r
   3.164 +CMD_CommitToBranch=Commit To Branch
   3.165 +# NOI18N
   3.166 +CMD_CommitToBranch_AN=commit -r
   3.167 +CMD_MergeWithBranch=Merge With Branch
   3.168 +# NOI18N
   3.169 +CMD_MergeWithBranch_AN=update -j
   3.170 +CMD_RemoveStickyTag=Remove Sticky Tag
   3.171 +# NOI18N
   3.172 +CMD_RemoveStickyTag_AN=update -A
   3.173 +CMD_ViewBranches=View Branches
   3.174 +CMD_RevisionView=Revision Explorer
   3.175 +CMD_AddTag=Add Tag
   3.176 +CMD_CheckOutRevision=Check Out Revision
   3.177 +# NOI18N
   3.178 +CMD_CheckOutRevision_AN=checkout -r
   3.179 +CMD_Diff=Diff
   3.180 +# NOI18N
   3.181 +CMD_Diff_AN=diff
   3.182 +
   3.183 +CMD_CustomizerLaunch=CVS Settings
   3.184 +
   3.185 +CMD_MergeRevisions=Merge With Revision
   3.186 +# NOI18N
   3.187 +CMD_MergeRevisions_AN=update -j
   3.188 +
   3.189 +CMD_MergeRevisions2=Merge Rev. Differences
   3.190 +# NOI18N
   3.191 +CMD_MergeRevisions2_AN=update -j -j
   3.192 +
   3.193 +SubmenuEditing=Editing
   3.194 +SubmenuWatches=Watches
   3.195 +
   3.196 +CTL_GlobalUserParamsLabel=CVS Global Options
   3.197 +CTL_CommandUserParamsLabel=CVS Command Options
   3.198 +CTL_CommandUserParamsLabelImport=Import Command Options
   3.199 +CTL_CommandUserParamsLabelCheckout=Checkout Command Options
   3.200 +
   3.201 +DLG_CVS_NeedToCheckOutFirst=\
   3.202 +	There are no CVS files in your working directory.\n\
   3.203 +	Use the Check Out command to create local working files.
   3.204 +
   3.205  #--------------------------------------------------------------------
   3.206  # AdditionalCommandDialog
   3.207  
     4.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/CommandLines.properties	Mon Jan 22 13:24:46 2001 +0000
     4.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/CommandLines.properties	Mon Jan 22 20:58:06 2001 +0000
     4.3 @@ -13,348 +13,210 @@
     4.4  
     4.5  #--------------------------------------------------------------------
     4.6  # UserCommand exec
     4.7 -# I18N File Description
     4.8 -EXEC_ADD_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} add ${USER_PARAM} -m \\"${PROMPT_FOR(File Description)}\\" \\"${FILE}\\" ${NUR}
     4.9 -# I18N File Description
    4.10 -EXEC_ADD_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} add ${USER_PARAM} -m \\"${PROMPT_FOR(File Description)}\\" \\"${FILE}\\" ${NUR}
    4.11 -# I18N File Description
    4.12 -EXEC_ADD_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} add ${USER_PARAM} -m \\"\\"${PROMPT_FOR(File Description)}\\"\\" \\"\\"${FILE}\\"\\" ${NUR}
    4.13  
    4.14 -EXEC_ADD_DIR_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} add ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
    4.15 -EXEC_ADD_DIR_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} add ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
    4.16 -EXEC_ADD_DIR_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} add ${USER_PARAM} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
    4.17 +EXEC_LIST_WIN=${WRAPPER} cmd /X /C "set CVSROOT=:${SERVERTYPE}:${CVSROOT}&& ${CD} ${ROOTDIR}${PS}${MODULE}${PS}${DIR}&& ${QUOTE}${CVS_EXE}${QUOTE} status -l"
    4.18 +EXEC_LIST_UNIX=${WRAPPER} sh -c "CVSROOT=${QUOTE}:${SERVERTYPE}:${CVSROOT}${QUOTE}; export CVSROOT; ${CD} ${QUOTE}${ROOTDIR}${PS}${MODULE}${PS}${DIR}${QUOTE}; ${QUOTE}${CVS_EXE}${QUOTE} status -l"
    4.19 +EXEC_LIST_CYGWIN=org.netbeans.modules.vcs.cmdline.list.CvsListCommand.class ${SHELL} -c "CVSROOT\=${QUOTE}\:${SERVERTYPE}\:${CVSROOT_\\/}${QUOTE};\ export\ CVSROOT;\ ${CD}\ ${QUOTE}${WORKDIR}${QUOTE}; ${QUOTE}${CVS_EXE}${QUOTE} status -l"
    4.20 +#REGEX_LIST=^(File\:.*Status\:.*$)|(^.*status.*$)|(^.*server.*$)
    4.21 +REGEX_LIST=^(.*$)
    4.22  
    4.23 -#EXEC_ADD_UNIX=${RUNCDM} ${CVS_EXE} add -m \\"initial revision\\" \\"${FILE}\\" ${NUR}
    4.24 -#EXEC_ADD_CYGWIN=${RUNCDM} ${CVS_EXE} add -m \\"initial revision\\" \\"${FILE}\\" ${NUR}
    4.25 -EXEC_CHECKOUT_WIN=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM(-N -R)} \\"${MODPATH}\\" ${NUR}
    4.26 -EXEC_CHECKOUT_UNIX=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM(-N -R)} \\"${MODPATH}\\" ${NUR}
    4.27 -EXEC_CHECKOUT_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM(-N -R)} \\"\\"${MODPATH}\\"\\" ${NUR}
    4.28 +EXEC_LIST_SUB_WIN=org.netbeans.modules.vcs.cmdline.list.CvsListRecursiveCommand.class cmd /X /C "set CVSROOT=:${SERVERTYPE}:${CVSROOT}&& ${CD} ${WORKDIR}&& ${QUOTE}${CVS_EXE}${QUOTE} status -R"
    4.29 +EXEC_LIST_SUB_UNIX=org.netbeans.modules.vcs.cmdline.list.CvsListRecursiveCommand.class sh -c "CVSROOT=${QUOTE}:${SERVERTYPE}:${CVSROOT}${QUOTE}; export CVSROOT; ${CD} ${QUOTE}${WORKDIR}${QUOTE}; ${QUOTE}${CVS_EXE}${QUOTE} status -R"
    4.30 +EXEC_LIST_SUB_CYGWIN=org.netbeans.modules.vcs.cmdline.list.CvsListRecursiveCommand.class ${SHELL} -c "CVSROOT\=${QUOTE}\:${SERVERTYPE}\:${CVSROOT_\\/}${QUOTE};\ export\ CVSROOT;\ ${CD}\ ${QUOTE}${WORKDIR}${QUOTE}; ${QUOTE}${CVS_EXE}${QUOTE} status -R"
    4.31 +#REGEX_LIST_SUB=^(File\:.*Status\:.*$)|(Repository revision.*$)|(^.*status.*$)|(^.*server.*$)
    4.32 +REGEX_LIST_SUB=^(.*$)
    4.33  
    4.34 -#EXEC_PRE_CHECKOUT_MODULE=org.netbeans.modules.vcs.cmdline.commands.CvsModuleSelector.class ${CHECKOUT_MODULES_S} ${CHECKOUT_MODULES_C}
    4.35 -#EXEC_PRE_CHECKOUT_MODULE_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsModuleSelector.class ${RUN} \\"${CVS_EXE}\\" checkout -s ${NUR}
    4.36 -#EXEC_PRE_CHECKOUT_MODULE_CYGWIN=org.netbeans.modules.vcs.cmdline.commands.CvsModuleSelector.class ${RUN} \\"\\"${CVS_EXE}\\"\\" checkout -s ${NUR}
    4.37 +EXEC_INIT=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} init ${NUR}
    4.38  
    4.39 -#EXEC_CHECKOUT_MODULE_WIN=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM(-N -R)} {PRE_COMMAND()} ${NUR}
    4.40 -#EXEC_CHECKOUT_MODULE_UNIX=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM(-N -R)} {PRE_COMMAND()} ${NUR}
    4.41 -#EXEC_CHECKOUT_MODULE_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM(-N -R)} {PRE_COMMAND()} ${NUR}
    4.42 -#EXEC_CHECKOUT_MODULE_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" checkout -N $[? MODULE_NAME] [\\"\\"${MODULE_NAME}\\"\\"] [.] ${NUR}
    4.43 -#EXEC_CHECKOUT_MODULE_WIN=${RUN} \\"${CVS_EXE}\\" $[? {PRE_COMMAND()}] [checkout -N {PRE_COMMAND()}] [] ${NUR}
    4.44 -#EXEC_CHECKOUT_MODULE_UNIX=${RUN} \\"${CVS_EXE}\\" $[? {PRE_COMMAND()}] [checkout -N {PRE_COMMAND()}] [] ${NUR}
    4.45 -#EXEC_CHECKOUT_MODULE_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" $[? {PRE_COMMAND()}] [checkout -N {PRE_COMMAND()}] [] ${NUR}
    4.46 +EXEC_SELECTOR_MODULES=org.netbeans.modules.vcs.cmdline.commands.CvsModuleSelector.class CHECKOUT_MODULES_S_CMD CHECKOUT_MODULES_C_CMD
    4.47  
    4.48 -EXEC_CUSTOMIZER_WIN=${RUN} \\"${CVS_EXE}\\" checkout -s ${NUR}
    4.49 -EXEC_CUSTOMIZER_UNIX=${RUN} \\"${CVS_EXE}\\" checkout -s ${NUR}
    4.50 -EXEC_CUSTOMIZER_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" checkout -s ${NUR}
    4.51 +# I18N The module name
    4.52 +EXEC_CHECKOUT_MODULE=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} checkout ${USER_PARAM(-N -R)} ${PROMPT_FOR[SELECTOR_MODULES](The module name)} ${NUR}
    4.53  
    4.54 -EXEC_GET_MODULE_NAME_WIN=${RUN} \\"${CVS_EXE}\\" checkout -c ${NUR}
    4.55 -EXEC_GET_MODULE_NAME_UNIX=${RUN} \\"${CVS_EXE}\\" checkout -c ${NUR}
    4.56 -EXEC_GET_MODULE_NAME_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" checkout -c ${NUR}
    4.57 +# I18N Directory to export into, Date, The module name
    4.58 +EXEC_EXPORT_MODULE_DATE=${RUN} ${CD} ${QUOTE}${PROMPT_FOR_DIR(Directory to export into)}${QUOTE}&& ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} export -D ${QUOTE}${PROMPT_FOR_DATE_CVS(Date)}${QUOTE} ${USER_PARAM} ${PROMPT_FOR[SELECTOR_MODULES](The module name)} ${NUR}
    4.59  
    4.60 -
    4.61 -
    4.62 -EXEC_CHECKOUT_MODULES_WIN=${RUN} \\"${CVS_EXE}\\" checkout -N $[? MODULE_NAME] [${MODULE_NAME}] [.] ${NUR}
    4.63 -EXEC_CHECKOUT_MODULES_UNIX=${RUN} \\"${CVS_EXE}\\" checkout -N $[? MODULE_NAME] [${MODULE_NAME}] [.] ${NUR}
    4.64 -EXEC_CHECKOUT_MODULES_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" checkout -N $[? MODULE_NAME] [${MODULE_NAME}] [.] ${NUR}
    4.65 -#EXEC_CHECKOUT_UNIX=${RUN} ${CVS_EXE} checkout -N \\"${MODPATH}\\" ${NUR}
    4.66 -#EXEC_CHECKOUT_PRJ_WIN=${RUN}\ ${CVS_EXE}\ init&&\ ${CVS_EXE}\ checkout\ \\"$[? DIR] [${MODULE_S}${DIR}] [$[? MODULE_S] [${MODULE_S}] [.]]\\"\ ${NUR}
    4.67 -#EXEC_CHECKOUT_PRJ_UNIX=${RUN}\ ${CVS_EXE}\ init;\ ${CVS_EXE}\ checkout\ \\"$[? DIR] [${MODULE}${DIR}] [$[? MODULE] [${MODULE}] [.]]\\"\ ${NUR}
    4.68 -
    4.69 -EXEC_PRE_COMMIT_WIN=org.netbeans.modules.vcs.cmdline.commands.CvsTemplateParser.class ${RUN} \\"${CVS_EXE}\\" checkout \ -p\ CVSROOT/rcsinfo\ ${NUR}
    4.70 -EXEC_PRE_COMMIT_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsTemplateParser.class ${RUN} \\"${CVS_EXE}\\" checkout\ -p\ CVSROOT/rcsinfo\ ${NUR}
    4.71 -EXEC_PRE_COMMIT_CYGWIN=org.netbeans.modules.vcs.cmdline.commands.CvsTemplateParser.class ${RUN} \\"\\"${CVS_EXE}\\"\\" checkout\ -p\ CVSROOT/rcsinfo\ ${NUR}
    4.72 -REGEX_PRE_COMMIT=^(.*) (.*$)
    4.73 +# I18N Directory to export into, Tag name, The module name
    4.74 +EXEC_EXPORT_MODULE_REVISION=${RUN} ${CD} ${QUOTE}${PROMPT_FOR_DIR(Directory to export into)}${QUOTE}&& ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} export -r ${PROMPT_FOR(Tag name)} ${USER_PARAM} ${PROMPT_FOR[SELECTOR_MODULES](The module name)} ${NUR}
    4.75  
    4.76  # I18N Enter reason
    4.77 -EXEC_COMMIT_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} commit\ ${USER_PARAM} -F\ \\"${PROMPT_FOR_FILE_CONTENT(Enter reason, {PRE_COMMAND()})}\\"\ $[? FILE] [\\"${FILE}\\"] []\ ${NUR}
    4.78 -# I18N Enter reason
    4.79 -EXEC_COMMIT_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} commit\ ${USER_PARAM} -F\ \\"${PROMPT_FOR_FILE_CONTENT(Enter reason, {PRE_COMMAND()})}\\"\ $[? FILE] [\\"${FILE}\\"] []\ ${NUR}
    4.80 -# I18N Enter reason
    4.81 -EXEC_COMMIT_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} commit\ ${USER_PARAM} -F\ \\"\\"${PROMPT_FOR_FILE_CONTENT(Enter reason, {PRE_COMMAND()})}\\"\\"\ $[? FILE] [\\"\\"${FILE}\\"\\"] []\ ${NUR}
    4.82 +EXEC_COMMIT=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} commit ${USER_PARAM} -F ${QUOTE}${PROMPT_FOR_FILE_CONTENT(Enter reason, {FILE_OUTPUT_OF_COMMIT_TEMPLATE_GETTER(0)})}${QUOTE} $[? PATHS] [${QPATHS}] [${QPATH}] ${NUR}
    4.83  
    4.84 -# OLD commands use -m
    4.85 -#EXEC_COMMIT_WIN=${RUN} \\"${CVS_EXE}\\" commit\ -m\ \\"${REASON}\\"\ \\"${MODPATH}\\"\ ${NUR}
    4.86 -#EXEC_COMMIT_UNIX=${RUN} \\"${CVS_EXE}\\" commit\ -m\ \\"${REASON}\\"\ \\"${MODPATH}\\"\ ${NUR}
    4.87 -#EXEC_COMMIT_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" commit\ -m\ \\"\\"${REASON}\\"\\"\ \\"\\"${MODPATH}\\"\\"\ ${NUR}
    4.88 +EXEC_COMMIT_TEMPLATE_GETTER_UNIX=${RUN} $[? MODULE] [${CD} ${QUOTE}${MODULE}${QUOTE}&&] [] echo a | ${QUOTE}${CVS_EXE}${QUOTE} -e cat commit ${USER_PARAM} $[? PATHS] [${QPATHS}] [${QPATH}] ${NUR}
    4.89 +EXEC_COMMIT_TEMPLATE_GETTER_WIN=${RUN} $[? MODULE] [${CD} ${QUOTE}${MODULE}${QUOTE}&&] [] echo a | ${QUOTE}${CVS_EXE}${QUOTE} -e ${QUOTE}${netbeans.home}\system\vcs\config\wincat${QUOTE} commit ${USER_PARAM} $[? PATHS] [${QPATHS}] [${QPATH}] ${NUR}
    4.90 +EXEC_COMMIT_TEMPLATE_GETTER_CYGWIN=${RUN} $[? MODULE] [${CD} ${QUOTE}${MODULE}${QUOTE}&&] [] echo a | ${QUOTE}${CVS_EXE}${QUOTE} -e cat commit ${USER_PARAM} $[? PATHS] [${QPATHS}] [${QPATH}] ${NUR}
    4.91 +REGEX_COMMIT_TEMPLATE_GETTER=^($|[^La].*$|.[^o)].*$|..[^gb].*$|...[^ o].*$|....[^mr].*$|.....[^et].*$|......[^s,].*$|.......[^s ].*$|........[^ac].*$|.........[^g)].*$|..........[^eo].*$|...........[^ n].*$|............[^ut].*$|.............[^ni].*$)
    4.92  
    4.93 -#EXEC_COMMIT_MODULE_WIN=${RUN} \\"${CVS_EXE}\\" commit\ -m\ \\"${REASON}\\"\ $[? MODULE_NAME] [\\"${MODULE_NAME}\\"] [.]\ ${NUR}
    4.94 -#EXEC_COMMIT_MODULE_UNIX=${RUN} \\"${CVS_EXE}\\" commit\ -m\ \\"${REASON}\\"\ $[? MODULE_NAME] [\\"${MODULE_NAME}\\"] [.]\ ${NUR}
    4.95 -#EXEC_COMMIT_MODULE_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" commit\ -m\ \\"\\"${REASON}\\"\\"\ $[? MODULE_NAME] [\\"${MODULE_NAME}\\"] [.]\ ${NUR}
    4.96 -#EXEC_COMMIT_UNIX=${RUN}\ cvs\ commit\ -m\ \\"${REASON}\\"\ \\"${MODPATH}\\"\ ${NUR}
    4.97 -#EXEC_IMPORT_WIN=${RUN} ${CD} \\"$[? DIR] [${ROOTDIR}${PS}${MODULE}${DIR}] [$[? MODULE] [${ROOTDIR}${PS}${MODULE}] [${ROOTDIR}]]\\"&& cvs import -I filesystem.attributes -m \\"project created\\" \\"$[? DIR_S] [${MODULE_S}${DIR_S}/${FILE}] [$[? MODULE_S] [${MODULE_S}${FILE}] [$[? FILE] [${FILE}] [.]]]\\" vendor-tag release-tag ${NUR}
    4.98 +EXEC_UPDATE=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} update ${USER_PARAM()} $[? FILE] [${QFILE}] [] ${NUR}
    4.99 +
   4.100 +# I18N File Description
   4.101 +EXEC_ADD=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} add ${USER_PARAM} -m ${QUOTE}${PROMPT_FOR(File Description)}${QUOTE} ${QFILE} ${NUR}
   4.102 +DISABLED_ON_STATUS_ADD="Up-to-date", "Locally Added", "Locally Modified", "Needs Checkout", "Needs Patch", "Needs Merge", "File had conflict on merge"
   4.103 +
   4.104 +EXEC_ADD_DIR=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} add ${USER_PARAM} ${QFILE} ${NUR}
   4.105 +DISABLED_ON_STATUS_ADD_DIR=""
   4.106 +
   4.107 +EXEC_REMOVE=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} remove ${USER_PARAM(-f)} ${QUOTE}${MODPATH}${QUOTE} ${NUR}
   4.108 +
   4.109  
   4.110  # I18N Logging Message, Vendor Tag, Release Tag
   4.111 -EXEC_IMPORT_WIN=${RUNCDM} $[? FILE] [${CD} \\"${FILE}\\"&&] [] \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} import ${USER_PARAM(-I filesystem.attributes)} -m \\"${PROMPT_FOR(Logging Message)}\\" \\"$[? DIR_\\/] [$[? MODULE_\\/] [${MODULE_\\/}/${DIR_\\/}/${FILE}] [${DIR_\\/}/${FILE}]] [$[? MODULE] [${MODULE_\\/}/${FILE}] [${FILE}]]\\" ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)} ${NUR}
   4.112 +EXEC_IMPORT_WIN=${RUNCDM} $[? FILE] [${CD} ${QFILE}&&] [] ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} import ${USER_PARAM(-I filesystem.attributes)} -m ${QUOTE}${PROMPT_FOR(Logging Message)}${QUOTE} ${QUOTE}$[? DIR_\/] [$[? MODULE_\/] [${MODULE_\/}/${DIR_\/}/${FILE}] [${DIR_\/}/${FILE}]] [$[? MODULE] [${MODULE_\/}/${FILE}] [${FILE}]]${QUOTE} ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)} ${NUR}
   4.113  # I18N Logging Message, Vendor Tag, Release Tag
   4.114 -EXEC_IMPORT_UNIX=${RUNCDM} $[? FILE] [${CD} \\"${FILE}\\";] [] \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} import ${USER_PARAM(-I filesystem.attributes)} -m \\"${PROMPT_FOR(Logging Message)}\\" \\"$[? DIR] [$[? MODULE] [${MODULE}${PS}${DIR}${PS}${FILE}] [${DIR}${PS}${FILE}]] [$[? MODULE] [${MODULE}${PS}${FILE}] [${FILE}]]\\" ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)} ${NUR}
   4.115 +EXEC_IMPORT_UNIX=${RUNCDM} $[? FILE] [${CD} ${QFILE};] [] ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} import ${USER_PARAM(-I filesystem.attributes)} -m ${QUOTE}${PROMPT_FOR(Logging Message)}${QUOTE} ${QUOTE}$[? DIR] [$[? MODULE] [${MODULE}${PS}${DIR}${PS}${FILE}] [${DIR}${PS}${FILE}]] [$[? MODULE] [${MODULE}${PS}${FILE}] [${FILE}]]${QUOTE} ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)} ${NUR}
   4.116  # I18N Logging Message, Vendor Tag, Release Tag
   4.117 -EXEC_IMPORT_CYGWIN=${RUNCDM} $[? FILE] [${CD} \\"\\"${FILE}\\"\\";] [] \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} import ${USER_PARAM(-I filesystem.attributes)} -m \\"\\"${PROMPT_FOR(Logging Message)}\\"\\" \\"\\"$[? DIR_\\/] [$[? MODULE_\\/] [${MODULE_\\/}${PS}${DIR_\\/}${PS}${FILE}] [${DIR_\\/}${PS}${FILE}]] [$[? MODULE] [${MODULE_\\/}${PS}${FILE}] [${FILE}]]\\"\\" ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)} ${NUR}
   4.118 -
   4.119 -#EXEC_IMPORT_MODULE_WIN=${RUN} \\"${CVS_EXE}\\" import -I filesystem.attributes -m \\"${PROMPT_FOR(Logging Message)}\\" $[? MODULE_NAME] [\\"${MODULE_NAME}\\"] [.] ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)} ${NUR}
   4.120 -#EXEC_IMPORT_MODULE_UNIX=${RUN} \\"${CVS_EXE}\\" import -I filesystem.attributes -m \\"${PROMPT_FOR(Logging Message)}\\" $[? MODULE_NAME] [\\"${MODULE_NAME}\\"] [.] ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)} ${NUR}
   4.121 -#EXEC_IMPORT_MODULE_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" import -I filesystem.attributes -m \\"\\"${PROMPT_FOR(Logging Message)}\\"\\" $[? MODULE_NAME] [\\"\\"${MODULE_NAME}\\"\\"] [.] ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)} ${NUR}
   4.122 +EXEC_IMPORT_CYGWIN=${RUNCDM} $[? FILE] [${CD} ${QFILE};] [] ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} import ${USER_PARAM(-I filesystem.attributes)} -m ${QUOTE}${PROMPT_FOR(Logging Message)}${QUOTE} ${QUOTE}$[? DIR] [$[? MODULE] [${MODULE}${PS}${DIR}${PS}${FILE}] [${DIR}${PS}${FILE}]] [$[? MODULE] [${MODULE}${PS}${FILE}] [${FILE}]]${QUOTE} ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)} ${NUR}
   4.123  
   4.124  # I18N Logging Message, Vendor Tag, Release Tag
   4.125 -EXEC_IMPORT_AND_CHECKOUT_WIN=${RUNCDM} $[? FILE] [${CD} \\"${FILE}\\"&&] [] \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} import ${USER_PARAM2(-I filesystem.attributes)} -m \\"${PROMPT_FOR(Logging Message)}\\" \\"$[? DIR_\\/] [$[? MODULE_\\/] [${MODULE_\\/}/${DIR_\\/}/${FILE}] [${DIR_\\/}/${FILE}]] [$[? MODULE] [${MODULE_\\/}/${FILE}] [${FILE}]]\\" ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)}&& ${CD} ..&& rename \\"${FILE}\\" \\"${FILE}_original\\"&& ${CD} \\"${ROOTDIR}\\"&& \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM3(-N -R)} \\"${MODPATH}\\" ${NUR}
   4.126 +EXEC_IMPORT_AND_CHECKOUT_WIN=${RUNCDM} $[? FILE] [${CD} ${QFILE}&&] [] ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} import ${USER_PARAM2(-I filesystem.attributes)} -m ${QUOTE}${PROMPT_FOR(Logging Message)}${QUOTE} ${QUOTE}$[? DIR_\/] [$[? MODULE_\/] [${MODULE_\/}/${DIR_\/}/${FILE}] [${DIR_\/}/${FILE}]] [$[? MODULE] [${MODULE_\/}/${FILE}] [${FILE}]]${QUOTE} ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)}&& ${CD} ..&& rename ${QFILE} ${QUOTE}${FILE}_copy${QUOTE}&& ${CD} ${QUOTE}${ROOTDIR}${QUOTE}&& ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} checkout ${USER_PARAM3(-N -R)} ${QUOTE}${MODPATH}${QUOTE} ${NUR}
   4.127  # I18N Logging Message, Vendor Tag, Release Tag
   4.128 -EXEC_IMPORT_AND_CHECKOUT_UNIX=${RUNCDM} $[? FILE] [${CD} \\"${FILE}\\";] [] \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} import ${USER_PARAM2(-I filesystem.attributes)} -m \\"${PROMPT_FOR(Logging Message)}\\" \\"$[? DIR] [$[? MODULE] [${MODULE}${PS}${DIR}${PS}${FILE}] [${DIR}${PS}${FILE}]] [$[? MODULE] [${MODULE}${PS}${FILE}] [${FILE}]]\\" ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)}&& ${CD} ..&& mv \\"${FILE}\\" \\"${FILE}_original\\"&& ${CD} \\"${ROOTDIR}\\"&& \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM3(-N -R)} \\"${MODPATH}\\" ${NUR}
   4.129 +EXEC_IMPORT_AND_CHECKOUT_UNIX=${RUNCDM} $[? FILE] [${CD} ${QFILE};] [] ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} import ${USER_PARAM2(-I filesystem.attributes)} -m ${QUOTE}${PROMPT_FOR(Logging Message)}${QUOTE} ${QUOTE}$[? DIR] [$[? MODULE] [${MODULE}${PS}${DIR}${PS}${FILE}] [${DIR}${PS}${FILE}]] [$[? MODULE] [${MODULE}${PS}${FILE}] [${FILE}]]${QUOTE} ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)}&& ${CD} ..&& mv ${QUOTE}${FILE}${QUOTE} ${QUOTE}${FILE}_copy${QUOTE}&& ${CD} ${QUOTE}${ROOTDIR}${QUOTE}&& ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} checkout ${USER_PARAM3(-N -R)} ${QUOTE}${MODPATH}${QUOTE} ${NUR}
   4.130  # I18N Logging Message, Vendor Tag, Release Tag
   4.131 -EXEC_IMPORT_AND_CHECKOUT_CYGWIN=${RUNCDM} $[? FILE] [${CD} \\"\\"${FILE}\\"\\";] [] \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} import ${USER_PARAM2(-I filesystem.attributes)} -m \\"\\"${PROMPT_FOR(Logging Message)}\\"\\" \\"\\"$[? DIR_\\/] [$[? MODULE_\\/] [${MODULE_\\/}${PS}${DIR_\\/}${PS}${FILE}] [${DIR_\\/}${PS}${FILE}]] [$[? MODULE] [${MODULE_\\/}${PS}${FILE}] [${FILE}]]\\"\\" ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)}&& ${CD} ..&& mv \\"\\"${FILE}\\"\\" \\"\\"${FILE}_original\\"\\"&& ${CD} \\"${ROOTDIR_\\/}\\"; \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM3(-N -R)} \\"\\"${MODPATH}\\"\\" ${NUR}
   4.132 +EXEC_IMPORT_AND_CHECKOUT_CYGWIN=${RUNCDM} $[? FILE] [${CD} ${QFILE};] [] ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} import ${USER_PARAM2(-I filesystem.attributes)} -m ${QUOTE}${PROMPT_FOR(Logging Message)}${QUOTE} ${QUOTE}$[? DIR_\\/] [$[? MODULE_\\/] [${MODULE_\\/}${PS}${DIR_\\/}${PS}${FILE}] [${DIR_\\/}${PS}${FILE}]] [$[? MODULE] [${MODULE_\\/}${PS}${FILE}] [${FILE}]]${QUOTE} ${PROMPT_FOR(Vendor Tag)} ${PROMPT_FOR(Release Tag)}&& ${CD} ..&& mv ${QUOTE}${FILE}${QUOTE} ${QUOTE}${FILE}_copy${QUOTE}&& ${CD} ${QUOTE}${ROOTDIR_\\/}${QUOTE}&& ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} checkout ${USER_PARAM3(-N -R)} ${QUOTE}${MODPATH}${QUOTE} ${NUR}
   4.133  
   4.134 -#EXEC_IMPORT_UNIX=${RUN} ${CD} \\"$[? DIR] [${ROOTDIR}${PS}${MODULE}${DIR}] [$[? MODULE] [${ROOTDIR}${PS}${MODULE}] [${ROOTDIR}]]\\"; cvs import -I filesystem.attributes -m \\"project created\\" \\"$[? DIR] [${MODULE}${DIR}${PS}${FILE}] [$[? MODULE_S] [${MODULE}${FILE}] [$[? FILE] [${FILE}] [.]]]\\" vendor-tag release-tag ${NUR}
   4.135 +EXEC_CHECKOUT=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} checkout ${USER_PARAM(-N)} ${QUOTE}${MODPATH}${QUOTE} ${NUR}
   4.136  
   4.137 -EXEC_LIST_WIN=org.netbeans.modules.vcs.cmdline.list.CvsListCommand.class cmd /X /C \"set CVSROOT=:${SERVERTYPE}:${CVSROOT}&& ${CD} ${WORKDIR}&& \\\"${CVS_EXE}\\\" status -l\"
   4.138 -EXEC_LIST_UNIX=org.netbeans.modules.vcs.cmdline.list.CvsListCommand.class sh -c \"CVSROOT=\\\":${SERVERTYPE}:${CVSROOT}\\\"; export CVSROOT; ${CD} \\\"${WORKDIR}\\\"; \\\"${CVS_EXE}\\\" status -l\"
   4.139 -EXEC_LIST_CYGWIN=org.netbeans.modules.vcs.cmdline.list.CvsListCommand.class ${SHELL} -c "CVSROOT\=\\\"\\\"\:${SERVERTYPE}\:${CVSROOT_\\/}\\\"\\\";\ export\ CVSROOT;\ ${CD}\ \\\"\\\"${WORKDIR}\\\"\\\"; \\\"\\\"${CVS_EXE}\\\"\\\" status -l"
   4.140 -REGEX_LIST=^(File\:.*Status\:.*$)|(^.*status.*$)|(^.*server.*$)
   4.141 +# I18N Directory to export into, Date
   4.142 +EXEC_EXPORT_DATE=${RUN} ${CD} ${QUOTE}${PROMPT_FOR_DIR(Directory to export into)}${QUOTE}&& ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} export -D ${QUOTE}${PROMPT_FOR_DATE_CVS(Date)}${QUOTE} ${USER_PARAM} ${QUOTE}${MODPATH}${QUOTE} ${NUR}
   4.143  
   4.144 -EXEC_LIST_SUB_WIN=org.netbeans.modules.vcs.cmdline.list.CvsListRecursiveCommand.class cmd /X /C \"set CVSROOT=:${SERVERTYPE}:${CVSROOT}&& ${CD} ${WORKDIR}&& \\\"${CVS_EXE}\\\" status -R\"
   4.145 -EXEC_LIST_SUB_UNIX=org.netbeans.modules.vcs.cmdline.list.CvsListRecursiveCommand.class sh -c \"CVSROOT=\\\":${SERVERTYPE}:${CVSROOT}\\\"; export CVSROOT; ${CD} \\\"${WORKDIR}\\\"; \\\"${CVS_EXE}\\\" status -R\"
   4.146 -EXEC_LIST_SUB_CYGWIN=org.netbeans.modules.vcs.cmdline.list.CvsListRecursiveCommand.class ${SHELL} -c "CVSROOT\=\\\"\\\"\:${SERVERTYPE}\:${CVSROOT_\\/}\\\"\\\";\ export\ CVSROOT;\ ${CD}\ \\\"\\\"${WORKDIR}\\\"\\\"; \\\"\\\"${CVS_EXE}\\\"\\\" status -R"
   4.147 -REGEX_LIST_SUB=^(File\:.*Status\:.*$)|(Repository revision.*$)|(^.*status.*$)|(^.*server.*$)
   4.148 +# I18N Directory to export into, Tag name
   4.149 +EXEC_EXPORT_REVISION=${RUN} ${CD} ${QUOTE}${PROMPT_FOR_DIR(Directory to export into)}${QUOTE}&& ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} export -r ${PROMPT_FOR(Tag name)} ${USER_PARAM} ${QUOTE}${MODPATH}${QUOTE} ${NUR}
   4.150  
   4.151 -#REGEX_LIST_SRV=^(File\:.*Status\:.*$)|(^.*server.*$)
   4.152  
   4.153 -EXEC_REMOVE_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} remove ${USER_PARAM(-f)} \\"${FILE}\\"\ ${NUR}
   4.154 -EXEC_REMOVE_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} remove ${USER_PARAM(-f)} '${FILE}'\ ${NUR}
   4.155 -EXEC_REMOVE_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} remove ${USER_PARAM(-f)} '${FILE}' ${NUR}
   4.156 +EXEC_LOCK=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} admin ${USER_PARAM(-l)} $[? FILE] [${QFILE}] [] ${NUR}
   4.157  
   4.158 -#EXEC_REMOVEDIR_WIN=${RUN} rmdir /s /q \\"${ROOTDIR}${PS}${MODULE}${PS}${DIR}${PS}${FILE}\\"&& mkdir \\"${ROOTDIR}${PS}${MODULE}${PS}${DIR}${PS}${FILE}\\"&& \\"${CVS_EXE}\\" remove \\"${MODPATH}\\"\ ${NUR}
   4.159 -#EXEC_REMOVEDIR_UNIX=${RUN} /bin/rm\ -rf \\"${ROOTDIR}${PS}${MODULE}${PS}${DIR}${PS}${FILE}\\"; mkdir \\"${ROOTDIR}${PS}${MODULE}${PS}${DIR}${PS}${FILE}\\"; \\"${CVS_EXE}\\" remove \\"${MODPATH}\\"\ ${NUR}
   4.160 -#EXEC_REMOVEDIR_CYGWIN=${RUN} ${CYGWINBIN}/rm.exe -rf \\"\\"${MODPATH}\\"\\"; mkdir \\"\\"${MODPATH}\\"\\"; \\"\\"${CVS_EXE}\\"\\" remove \\"\\"${MODPATH}\\"\\" ${NUR}
   4.161 +EXEC_UNLOCK=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} admin ${USER_PARAM(-u)} $[? FILE] [${QFILE}] [] ${NUR}
   4.162  
   4.163 -#EXEC_REMOVEDIR_WIN=${RUN} \\"${CVS_EXE}\\" remove \\"${MODPATH}\\"\ ${NUR}
   4.164 -#EXEC_REMOVEDIR_UNIX=${RUN} \\"${CVS_EXE}\\" remove \\"${MODPATH}\\"\ ${NUR}
   4.165 -#EXEC_REMOVEDIR_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" remove \\"\\"${MODPATH}\\"\\" ${NUR}
   4.166 +EXEC_EDIT=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} edit ${USER_PARAM} $[? FILE] [${QFILE}] [] ${NUR}
   4.167  
   4.168 -EXEC_LOCK_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} admin ${USER_PARAM(-l)} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.169 -EXEC_LOCK_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} admin ${USER_PARAM(-l)} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.170 -EXEC_LOCK_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} admin ${USER_PARAM(-l)} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.171 -EXEC_UNLOCK_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} admin ${USER_PARAM(-u)} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.172 -EXEC_UNLOCK_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} admin ${USER_PARAM(-u)} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.173 -EXEC_UNLOCK_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} admin ${USER_PARAM(-u)} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.174 +EXEC_UNEDIT=${RUNCDM} echo y | ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} unedit ${USER_PARAM} $[? FILE] [${QFILE}] [] ${NUR}
   4.175  
   4.176 -EXEC_EDIT_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} edit ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.177 -EXEC_EDIT_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} edit ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.178 -EXEC_EDIT_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} edit ${USER_PARAM} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.179 -EXEC_UNEDIT_WIN=${RUNCDM} echo y | \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} unedit ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.180 -EXEC_UNEDIT_UNIX=${RUNCDM} echo y | \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} unedit ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.181 -EXEC_UNEDIT_CYGWIN=${RUNCDM} echo y | \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} unedit ${USER_PARAM} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.182 +EXEC_EDITORS=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} editors ${USER_PARAM} $[? FILE] [${QFILE}] [] ${NUR}
   4.183  
   4.184 -EXEC_EDITORS_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} editors ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.185 -EXEC_EDITORS_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} editors ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.186 -EXEC_EDITORS_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} editors ${USER_PARAM} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.187 +EXEC_WATCH_ON=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} watch on ${USER_PARAM} $[? FILE] [${QFILE}] [] ${NUR}
   4.188  
   4.189 -EXEC_WATCH_ON_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} watch on ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.190 -EXEC_WATCH_ON_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} watch on ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.191 -EXEC_WATCH_ON_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} watch on ${USER_PARAM} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.192 +EXEC_WATCH_OFF=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} watch off ${USER_PARAM} $[? FILE] [${QFILE}] [] ${NUR}
   4.193  
   4.194 -EXEC_WATCH_OFF_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} watch off ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.195 -EXEC_WATCH_OFF_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} watch off ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.196 -EXEC_WATCH_OFF_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} watch off ${USER_PARAM} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.197 +EXEC_WATCH_ADD=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} watch remove -a all $[? FILE] [${QFILE}] []&& ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} watch add -a none $[? ASK_FOR"{INSERT_OUTPUT_OF_WATCH_ACTION_STATUS(0)}"(Edit)] [-a edit] [] $[? ASK_FOR"{INSERT_OUTPUT_OF_WATCH_ACTION_STATUS(1)}"(Unedit)] [-a unedit] [] $[? ASK_FOR"{INSERT_OUTPUT_OF_WATCH_ACTION_STATUS(2)}"(Commit)] [-a commit] [] $[? FILE] [${QFILE}] [] ${NUR}
   4.198  
   4.199 -EXEC_WATCH_ADD_WIN=org.netbeans.modules.vcs.cmdline.commands.CvsWatch.class ${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} watch remove -a all ${USER_PARAM} ${RECURSIVE} $[? FILE] [\\"${FILE}\\"] []&& \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} watch add ${USER_PARAM} ${ACTIONS} ${RECURSIVE} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.200 -EXEC_WATCH_ADD_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsWatch.class ${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} watch remove -a all ${USER_PARAM} ${RECURSIVE} $[? FILE] [\\"${FILE}\\"] []; \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} watch add ${USER_PARAM} ${ACTIONS} ${RECURSIVE} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.201 -EXEC_WATCH_ADD_CYGWIN=org.netbeans.modules.vcs.cmdline.commands.CvsWatch.class ${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} watch remove -a all ${USER_PARAM} ${RECURSIVE} $[? FILE] [\\"\\"${FILE}\\"\\"] []; \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} watch add ${USER_PARAM} ${ACTIONS} ${RECURSIVE} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.202 +EXEC_WATCH_ADD_DIR=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} watch remove -a all $[? ASK_FOR(Set watch recursively ?)] [-R] [-l] $[? FILE] [${QFILE}] []&& ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} watch add -a none $[? ASK_FOR(Edit)] [-a edit] [] $[? ASK_FOR(Unedit)] [-a unedit] [] $[? ASK_FOR(Commit)] [-a commit] [] $[? ASK_FOR(Set watch recursively ?)] [-R] [-l] $[? FILE] [${QFILE}] [] ${NUR}
   4.203  
   4.204 -EXEC_WATCHERS_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} watchers ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.205 -EXEC_WATCHERS_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} watchers ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.206 -EXEC_WATCHERS_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} watchers ${USER_PARAM} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.207 +EXEC_WATCHERS=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} watchers ${USER_PARAM} $[? FILE] [${QFILE}] [] ${NUR}
   4.208  
   4.209 -EXEC_STATUS_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} status ${USER_PARAM(-l)} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.210 -EXEC_STATUS_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} status ${USER_PARAM(-l)}  $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.211 -EXEC_STATUS_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} status ${USER_PARAM(-l)}  $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.212 -#EXEC_STATUS_UNIX=${RUNCDM} cvs status -l $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.213 +EXEC_STATUS=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} status ${USER_PARAM(-l)} $[? FILE] [${QFILE}] [] ${NUR}
   4.214  
   4.215 -EXEC_LOG_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} log ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.216 -EXEC_LOG_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} log ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.217 -EXEC_LOG_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} log ${USER_PARAM} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.218 -#EXEC_LOG_UNIX=${RUNCDM} cvs log $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.219 +EXEC_LOG=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} log ${USER_PARAM(-l)} $[? FILE] [${QFILE}] [] ${NUR}
   4.220  
   4.221 -EXEC_UPDATE_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update ${USER_PARAM(-R)} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.222 -EXEC_UPDATE_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update ${USER_PARAM(-R)} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.223 -EXEC_UPDATE_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} update ${USER_PARAM(-R)} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.224 +# I18N CVS Revision Selector
   4.225 +EXEC_SELECTOR_REVISIONS=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionSelector.class "CVS Revision Selector" LOG_INFO_CMD
   4.226 +# I18N CVS Branch Selector
   4.227 +EXEC_SELECTOR_BRANCHES=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionSelector.class -b "CVS Branch Selector" LOG_INFO_CMD
   4.228  
   4.229 -EXEC_REVISION_OPEN_WIN=${RUNCDM} \\"${CVS_EXE}\\" update -p $[? REVISION] [-r ${REVISION}] [] \\"${FILE}\\" > \\"${TEMPFILE}\\" ${NUR}
   4.230 -EXEC_REVISION_OPEN_UNIX=${RUNCDM} \\"${CVS_EXE}\\" update -p $[? REVISION] [-r ${REVISION}] [] \\"${FILE}\\" > \\"${TEMPFILE}\\" ${NUR}
   4.231 -EXEC_REVISION_OPEN_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" update -p $[? REVISION] [-r ${REVISION}] [] \\"\\"${FILE}\\"\\" > \\"\\"${TEMPFILE}\\"\\" ${NUR}
   4.232 +# I18N Revision or Branch
   4.233 +EXEC_CHECKOUT_REV=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} checkout -r ${PROMPT_FOR[SELECTOR_REVISIONS](Revision or Branch)} ${USER_PARAM(-N)} ${QUOTE}${MODPATH}${QUOTE} ${NUR}
   4.234  
   4.235 -EXEC_REVISION_UPDATE_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -r $[? IS_BRANCH] [${TAG}] [${REVISION}] ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.236 -EXEC_REVISION_UPDATE_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -r $[? IS_BRANCH] [${TAG}] [${REVISION}] ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.237 -EXEC_REVISION_UPDATE_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} update -r $[? IS_BRANCH] [${TAG}] [${REVISION}] ${USER_PARAM} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.238 +# I18N Revision or Branch
   4.239 +EXEC_CHECKOUT_REV_DIR=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} checkout -r ${PROMPT_FOR(Revision or Branch)} ${USER_PARAM(-N)} ${QUOTE}${MODPATH}${QUOTE} ${NUR}
   4.240  
   4.241 -EXEC_REVISION_MERGE_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -j ${REVISION1} $[? REVISION2] [-j ${REVISION2}] [] ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.242 -EXEC_REVISION_MERGE_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -j ${REVISION1} $[? REVISION2] [-j ${REVISION2}] [] ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.243 -EXEC_REVISION_MERGE_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} update -j ${REVISION1} $[? REVISION2] [-j ${REVISION2}] [] ${USER_PARAM} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.244 +# I18N Revision or Branch
   4.245 +EXEC_UPDATE_REV=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} update -r ${PROMPT_FOR[SELECTOR_REVISIONS](Revision or Branch)} ${USER_PARAM()} ${QUOTE}${MODPATH}${QUOTE} ${NUR}
   4.246  
   4.247 -EXEC_REVISION_DIFF=org.netbeans.modules.vcs.cmdline.commands.CvsDiff.class 0 ${CHECKOUT_CMD} ${REV_DIFF_USR_CMD}
   4.248 +# I18N Revision or Branch
   4.249 +EXEC_UPDATE_REV_DIR=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} update -r ${PROMPT_FOR(Revision or Branch)} ${USER_PARAM()} $[? FILE] [${QFILE}] [] ${NUR}
   4.250 +
   4.251 +# I18N Commit To Branch
   4.252 +EXEC_COMMIT_REV=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} commit -r ${PROMPT_FOR[SELECTOR_BRANCHES](Commit To Branch)} ${USER_PARAM()} -F ${QUOTE}${PROMPT_FOR_FILE_CONTENT(Enter reason)}${QUOTE} ${QUOTE}${MODPATH}${QUOTE} ${NUR}
   4.253 +
   4.254 +# I18N Commit To Branch
   4.255 +EXEC_COMMIT_REV_DIR=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} commit -r ${PROMPT_FOR(Commit To Branch)} ${USER_PARAM()} -F ${QUOTE}${PROMPT_FOR_FILE_CONTENT(Enter reason)}${QUOTE} ${QUOTE}${MODPATH}${QUOTE} ${NUR}
   4.256 +
   4.257 +# I18N Branch To Merge With
   4.258 +EXEC_MERGE=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} update -j ${PROMPT_FOR[SELECTOR_BRANCHES](Branch To Merge With)} ${USER_PARAM()} $[? FILE] [${QFILE}] [] ${NUR}
   4.259 +
   4.260 +EXEC_REM_STICKY=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} update ${USER_PARAM(-A)} $[? FILE] [${QFILE}] [] ${NUR}
   4.261 +
   4.262 +EXEC_ADD_TAG=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} $[? ASK_FOR(Repository Tag)] [rtag] [tag] $[? ASK_FOR(Branch Tag)] [-b] [] -r ${PROMPT_FOR"HEAD"[SELECTOR_REVISIONS](On revision)} ${USER_PARAM()} ${PROMPT_FOR(Tag Name)} ${QUOTE}${MODPATH}${QUOTE} ${NUR}
   4.263 +NOTIFICATION_SUCCESS_ADD_TAG=The $[? ASK_FOR(Branch Tag)] [branch] [tag] ${PROMPT_FOR(Tag Name)} was successfully created.
   4.264 +NOTIFICATION_FAIL_ADD_TAG=The $[? ASK_FOR(Branch Tag)] [branch] [tag] ${PROMPT_FOR(Tag Name)} failed to create. See the Output Window for hints.
   4.265 +
   4.266 +EXEC_BRANCHES=org.netbeans.modules.vcs.cmdline.commands.CvsBranches.class LOG_INFO_CMD CHECKOUT_CMD DIFF_CMD
   4.267 +
   4.268 +EXEC_DIFF=org.netbeans.modules.vcs.cmdline.commands.CvsDiff.class 0 CHECKOUT_CMD DIFF_USR_CMD
   4.269 +REGEX_DIFF=(^[0-9]+(,[0-9]+|)[d][0-9]+$)|(^[0-9]+(,[0-9]+|)[c][0-9]+(,[0-9]+|)$)|(^[0-9]+[a][0-9]+(,[0-9]+|)$)|(^retrieving revision.*)
   4.270 +
   4.271 +
   4.272 +EXEC_REVISION_OPEN=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} update -p $[? REVISION] [-r ${REVISION}] [] ${QUOTE}${FILE}${QUOTE} > ${QUOTE}${TEMPFILE}${QUOTE} ${NUR}
   4.273 +#EXEC_REVISION_OPEN_UNIX=${RUNCDM} \\"${CVS_EXE}\\" update -p $[? REVISION] [-r ${REVISION}] [] \\"${FILE}\\" > \\"${TEMPFILE}\\" ${NUR}
   4.274 +#EXEC_REVISION_OPEN_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" update -p $[? REVISION] [-r ${REVISION}] [] \\"\\"${FILE}\\"\\" > \\"\\"${TEMPFILE}\\"\\" ${NUR}
   4.275 +
   4.276 +EXEC_REVISION_UPDATE=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} update -r $[? BRANCH] [${BRANCH}] [${REVISION}] ${USER_PARAM} $[? FILE] [${QFILE}] [] ${NUR}
   4.277 +#EXEC_REVISION_UPDATE_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -r $[? IS_BRANCH] [${TAG}] [${REVISION}] ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.278 +#EXEC_REVISION_UPDATE_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} update -r $[? IS_BRANCH] [${TAG}] [${REVISION}] ${USER_PARAM} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.279 +
   4.280 +EXEC_REVISION_MERGE=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} update -j ${REVISION1} $[? REVISION2] [-j ${REVISION2}] [] ${USER_PARAM} $[? FILE] [${QFILE}] [] ${NUR}
   4.281 +#EXEC_REVISION_MERGE_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -j ${REVISION1} $[? REVISION2] [-j ${REVISION2}] [] ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.282 +#EXEC_REVISION_MERGE_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} update -j ${REVISION1} $[? REVISION2] [-j ${REVISION2}] [] ${USER_PARAM} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.283 +
   4.284 +EXEC_REVISION_DIFF=org.netbeans.modules.vcs.cmdline.commands.CvsDiff.class ${REVISION1} ${REVISION2} 0 CHECKOUT_CMD DIFF_CMD
   4.285  #EXEC_REVISION_DIFF2=org.netbeans.modules.vcs.cmdline.commands.CvsDiff.class 0 ${CHECKOUT_CMD} ${REV_DIFF_USR_CMD} ${REVISION} ${REVISION2}
   4.286  #EXEC_REVISION_DIFF_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -r ${REVISION} ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.287  #EXEC_REVISION_DIFF_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -r ${REVISION} ${USER_PARAM} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.288  #EXEC_REVISION_DIFF_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} update -r ${REVISION} ${USER_PARAM} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.289  
   4.290 -# I18N CVS Revision Selector
   4.291 -EXEC_SELECTOR_REVISIONS=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionSelector.class "CVS Revision Selector" ${LOG_INFO_CMD}
   4.292 -# I18N CVS Branch Selector
   4.293 -EXEC_SELECTOR_BRANCHES=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionSelector.class -b "CVS Branch Selector" ${LOG_INFO_CMD}
   4.294  
   4.295 -EXEC_DIFF=org.netbeans.modules.vcs.cmdline.commands.CvsDiff.class 0 ${CHECKOUT_CMD} ${DIFF_USR_CMD}
   4.296 -EXEC_TAGS=org.netbeans.modules.vcs.cmdline.commands.CvsAddTag.class ${LOG_INFO_CMD} ${ADD_TAG_CMD}
   4.297 +#EXEC_LOGIN=${RUN} ${CVS_EXE} login
   4.298 +#EXEC_REVISION_VIEW_WIN=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionExplorer.class ${RUNCDM} \\"${CVS_EXE}\\" log $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.299 +#EXEC_REVISION_VIEW_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionExplorer.class ${RUNCDM} \\"${CVS_EXE}\\" log $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.300 +#EXEC_REVISION_VIEW_CYGWIN=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionExplorer.class ${RUNCDM} \\"\\"${CVS_EXE}\\"\\" log $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.301 +EXEC_REVISION_VIEW=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionExplorer.class REVISION_GETTER
   4.302 +EXEC_REVISION_GETTER=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} -f log $[? FILE] [${QFILE}] [] ${NUR}
   4.303  
   4.304 -EXEC_ADD_TAG_WIN=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} $[? ASK_FOR(Repository Tag)] [rtag] [tag] $[? ASK_FOR(Branch Tag)] [-b] [] -r ${PROMPT_FOR"HEAD"[SELECTOR_REVISIONS](On revision)} ${USER_PARAM()} ${PROMPT_FOR(Tag Name)} \\"${MODPATH}\\" ${NUR}
   4.305 -EXEC_ADD_TAG_UNIX=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} $[? ASK_FOR(Repository Tag)] [rtag] [tag] $[? ASK_FOR(Branch Tag)] [-b] [] -r ${PROMPT_FOR"HEAD"[SELECTOR_REVISIONS](On revision)} ${USER_PARAM()} ${PROMPT_FOR(Tag Name)} \\"${MODPATH}\\" ${NUR}
   4.306 -EXEC_ADD_TAG_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} $[? ASK_FOR(Repository Tag)] [rtag] [tag] $[? ASK_FOR(Branch Tag)] [-b] [] -r ${PROMPT_FOR"HEAD"[SELECTOR_REVISIONS](On revision)} ${USER_PARAM()} ${PROMPT_FOR(Tag Name)} \\"\\"${MODPATH}\\"\\" ${NUR}
   4.307 -# I18N CVS Checkout Revision
   4.308 -#EXEC_CHECKOUT_REV_WIN=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class "CVS Checkout Revision" ${LOG_INFO_CMD} ${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout -r ${REVISION} ${USER_PARAM(-N -R)} \\"${MODPATH}\\" ${NUR}
   4.309 -# I18N CVS Checkout Revision
   4.310 -#EXEC_CHECKOUT_REV_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class "CVS Checkout Revision" ${LOG_INFO_CMD} ${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout -r ${REVISION} ${USER_PARAM(-N -R)} \\"${MODPATH}\\" ${NUR}
   4.311 -# I18N CVS Checkout Revision
   4.312 -#EXEC_CHECKOUT_REV_CYGWIN=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class "CVS Checkout Revision" ${LOG_INFO_CMD} ${RUN} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} checkout -r ${REVISION} ${USER_PARAM(-N -R)} \\"\\"${MODPATH}\\"\\" ${NUR}
   4.313 +EXEC_CUSTOMIZER=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} checkout -s ${NUR}
   4.314  
   4.315 -# I18N Revision or Branch
   4.316 -EXEC_CHECKOUT_REV_WIN=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout -r ${PROMPT_FOR[SELECTOR_REVISIONS](Revision or Branch)} ${USER_PARAM(-N)} \\"${MODPATH}\\" ${NUR}
   4.317 -# I18N Revision or Branch
   4.318 -EXEC_CHECKOUT_REV_UNIX=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout -r ${PROMPT_FOR[SELECTOR_REVISIONS](Revision or Branch)} ${USER_PARAM(-N)} \\"${MODPATH}\\" ${NUR}
   4.319 -# I18N Revision or Branch
   4.320 -EXEC_CHECKOUT_REV_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} checkout -r ${PROMPT_FOR[SELECTOR_REVISIONS](Revision or Branch)} ${USER_PARAM(-N)} \\"\\"${MODPATH}\\"\\" ${NUR}
   4.321 +EXEC_GET_MODULE_NAME=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} checkout -c ${NUR}
   4.322  
   4.323 -#EXEC_CHECKOUT_REV_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class "CVS Checkout Revision" ${LOG_INFO_CMD} ${RUN} cvs checkout -r ${REVISION} -N \\"${MODPATH}\\" ${NUR}
   4.324 -
   4.325 -# I18N Revision or Branch
   4.326 -EXEC_CHECKOUT_REV_DIR_WIN=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout -r ${PROMPT_FOR(Revision or Branch)} ${USER_PARAM(-N -R)} \\"${MODPATH}\\" ${NUR}
   4.327 -# I18N Revision or Branch
   4.328 -EXEC_CHECKOUT_REV_DIR_UNIX=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout -r ${PROMPT_FOR(Revision or Branch)} ${USER_PARAM(-N -R)} \\"${MODPATH}\\" ${NUR}
   4.329 -# I18N Revision or Branch
   4.330 -EXEC_CHECKOUT_REV_DIR_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} checkout -r ${PROMPT_FOR(Revision or Branch)} ${USER_PARAM(-N -R)} \\"\\"${MODPATH}\\"\\" ${NUR}
   4.331 -
   4.332 -# I18N CVS Update Revision
   4.333 -#EXEC_UPDATE_REV_WIN=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class "CVS Update Revision" ${LOG_INFO_CMD} ${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -r ${REVISION} ${USER_PARAM(-R)} \\"$[? FILE] [${FILE}] []\\" ${NUR}
   4.334 -# I18N CVS Update Revision
   4.335 -#EXEC_UPDATE_REV_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class "CVS Update Revision" ${LOG_INFO_CMD} ${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -r ${REVISION} ${USER_PARAM(-R)} \\"$[? FILE] [${FILE}] []\\" ${NUR}
   4.336 -# I18N CVS Update Revision
   4.337 -#EXEC_UPDATE_REV_CYGWIN=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class "CVS Update Revision" ${LOG_INFO_CMD} ${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} update -r ${REVISION} ${USER_PARAM(-R)} \\"\\"$[? FILE] [${FILE}] []\\"\\" ${NUR}
   4.338 -
   4.339 -# I18N Revision or Branch
   4.340 -EXEC_UPDATE_REV_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -r ${PROMPT_FOR[SELECTOR_REVISIONS](Revision or Branch)} ${USER_PARAM(-R)} \\"$[? FILE] [${FILE}] []\\" ${NUR}
   4.341 -# I18N Revision or Branch
   4.342 -EXEC_UPDATE_REV_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -r ${PROMPT_FOR[SELECTOR_REVISIONS](Revision or Branch)} ${USER_PARAM(-R)} \\"$[? FILE] [${FILE}] []\\" ${NUR}
   4.343 -# I18N Revision or Branch
   4.344 -EXEC_UPDATE_REV_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} update -r ${PROMPT_FOR[SELECTOR_REVISIONS](Revision or Branch)} ${USER_PARAM(-R)} \\"\\"$[? FILE] [${FILE}] []\\"\\" ${NUR}
   4.345 -
   4.346 -#EXEC_UPDATE_REV_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class "CVS Update Revision" ${LOG_INFO_CMD} ${RUNCDM} cvs update -r ${REVISION} \\"$[? FILE] [${FILE}] []\\" ${NUR}
   4.347 -
   4.348 -# I18N Revision or Branch
   4.349 -EXEC_UPDATE_REV_DIR_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -r ${PROMPT_FOR(Revision or Branch)} ${USER_PARAM(-R)} \\"$[? FILE] [${FILE}] []\\" ${NUR}
   4.350 -# I18N Revision or Branch
   4.351 -EXEC_UPDATE_REV_DIR_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -r ${PROMPT_FOR(Revision or Branch)} ${USER_PARAM(-R)} \\"$[? FILE] [${FILE}] []\\" ${NUR}
   4.352 -# I18N Revision or Branch
   4.353 -EXEC_UPDATE_REV_DIR_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} update -r ${PROMPT_FOR(Revision or Branch)} ${USER_PARAM(-R)} \\"\\"$[? FILE] [${FILE}] []\\"\\" ${NUR}
   4.354 -
   4.355 -# I18N CVS Commit To Branch
   4.356 -EXEC_COMMIT_REV_WIN=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class -b "CVS Commit To Branch" ${LOG_INFO_CMD} ${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} commit -r ${REVISION} ${USER_PARAM} -m \\"${REASON}\\" \\"$[? FILE] [${FILE}] [.]\\" ${NUR}
   4.357 -# I18N CVS Commit To Branch
   4.358 -EXEC_COMMIT_REV_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class -b "CVS Commit To Branch" ${LOG_INFO_CMD} ${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} commit -r ${REVISION} ${USER_PARAM} -m \\"${REASON}\\" \\"$[? FILE] [${FILE}] [.]\\" ${NUR}
   4.359 -# I18N CVS Commit To Branch
   4.360 -EXEC_COMMIT_REV_CYGWIN=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class -b "CVS Commit To Branch" ${LOG_INFO_CMD} ${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} commit -r ${REVISION} ${USER_PARAM} -m \\"\\"${REASON}\\"\\" \\"\\"$[? FILE] [${FILE}] [.]\\"\\" ${NUR}
   4.361 -
   4.362 -# I18N Revision
   4.363 -EXEC_COMMIT_REV_DIR_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} commit -r ${PROMPT_FOR(Revision)} ${USER_PARAM} -m \\"${REASON}\\" \\"$[? FILE] [${FILE}] [.]\\" ${NUR}
   4.364 -# I18N Revision
   4.365 -EXEC_COMMIT_REV_DIR_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} commit -r ${PROMPT_FOR(Revision)} ${USER_PARAM} -m \\"${REASON}\\" \\"$[? FILE] [${FILE}] [.]\\" ${NUR}
   4.366 -# I18N Revision
   4.367 -EXEC_COMMIT_REV_DIR_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} commit -r ${PROMPT_FOR(Revision)} ${USER_PARAM} -m \\"\\"${REASON}\\"\\" \\"\\"$[? FILE] [${FILE}] [.]\\"\\" ${NUR}
   4.368 -
   4.369 -#EXEC_COMMIT_REV_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class -b "CVS Commit To Branch" ${LOG_INFO_CMD} ${RUNCDM} cvs commit -r ${REVISION} -m \\"${REASON}\\" \\"$[? FILE] [${FILE}] [.]\\" ${NUR}
   4.370 -EXEC_REM_STICKY_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update ${USER_PARAM(-A -R)} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.371 -EXEC_REM_STICKY_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update ${USER_PARAM(-A -R)} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.372 -EXEC_REM_STICKY_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} update ${USER_PARAM(-A -R)} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.373 -#EXEC_REM_STICKY_UNIX=${RUNCDM} cvs update -A $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.374 -
   4.375 -# I18N CVS Merge Branch
   4.376 -#EXEC_MERGE_WIN=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class -b "CVS Merge Branch" ${LOG_INFO_CMD} ${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -j ${REVISION} ${USER_PARAM(-R)} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.377 -# I18N CVS Merge Branch
   4.378 -#EXEC_MERGE_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class -b "CVS Merge Branch" ${LOG_INFO_CMD} ${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -j ${REVISION} ${USER_PARAM(-R)} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.379 -# I18N CVS Merge Branch
   4.380 -#EXEC_MERGE_CYGWIN=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class -b "CVS Merge Branch" ${LOG_INFO_CMD} ${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} update -j ${REVISION} ${USER_PARAM(-R)} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.381 -
   4.382 -# I18N Branch to merge with
   4.383 -EXEC_MERGE_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -j ${PROMPT_FOR[SELECTOR_BRANCHES](Branch to merge with)} ${USER_PARAM(-R)} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.384 -# I18N Branch to merge with
   4.385 -EXEC_MERGE_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} update -j ${PROMPT_FOR[SELECTOR_BRANCHES](Branch to merge with)} ${USER_PARAM(-R)} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.386 -# I18N Branch to merge with
   4.387 -EXEC_MERGE_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} update -j ${PROMPT_FOR[SELECTOR_BRANCHES](Branch to merge with)} ${USER_PARAM(-R)} $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.388 -
   4.389 -#EXEC_MERGE_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionCommand.class -b "CVS Merge Branch" ${RUNCDM} cvs update -j ${REVISION} $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.390 -
   4.391 -EXEC_LOGIN=${RUN} ${CVS_EXE} login
   4.392 -EXEC_BRANCHES=org.netbeans.modules.vcs.cmdline.commands.CvsBranches.class ${LOG_INFO_CMD} ${CHECKOUT_CMD} ${DIFF_CMD}
   4.393 -
   4.394 -EXEC_REVISION_VIEW_WIN=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionExplorer.class ${RUNCDM} \\"${CVS_EXE}\\" log $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.395 -EXEC_REVISION_VIEW_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionExplorer.class ${RUNCDM} \\"${CVS_EXE}\\" log $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.396 -EXEC_REVISION_VIEW_CYGWIN=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionExplorer.class ${RUNCDM} \\"\\"${CVS_EXE}\\"\\" log $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.397 -
   4.398 -EXEC_INIT_WIN=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} init ${NUR}
   4.399 -EXEC_INIT_UNIX=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} init ${NUR}
   4.400 -EXEC_INIT_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} init ${NUR}
   4.401 -#EXEC_INIT_UNIX=${RUN} cvs init ${NUR}
   4.402 -
   4.403 -# I18N Directory to export into, Date
   4.404 -EXEC_EXPORT_DATE_WIN=${RUN} ${CD} \\"${PROMPT_FOR_DIR(Directory to export into)}\\"&& \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} export -D \\"${PROMPT_FOR_DATE_CVS(Date)}\\" ${USER_PARAM} \\"${MODPATH}\\" ${NUR}
   4.405 -# I18N Directory to export into, Date
   4.406 -EXEC_EXPORT_DATE_UNIX=${RUN} ${CD} \\"${PROMPT_FOR_DIR(Directory to export into)}\\"&& \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} export -D \\"${PROMPT_FOR_DATE_CVS(Date)}\\" ${USER_PARAM} \\"${MODPATH}\\" ${NUR}
   4.407 -# I18N Directory to export into, Date
   4.408 -EXEC_EXPORT_DATE_CYGWIN=${RUN} ${CD} \\"\\"${PROMPT_FOR_DIR(Directory to export into)}\\"\\"&& \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} export -D \\"\\"${PROMPT_FOR_DATE_CVS(Date)}\\"\\" ${USER_PARAM} \\"\\"${MODPATH}\\"\\" ${NUR}
   4.409 -
   4.410 -# I18N Directory to export into, Tag name
   4.411 -EXEC_EXPORT_REVISION_WIN=${RUN} ${CD} \\"${PROMPT_FOR_DIR(Directory to export into)}\\"&& \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} export -r ${PROMPT_FOR(Tag name)} ${USER_PARAM} \\"${MODPATH}\\" ${NUR}
   4.412 -# I18N Directory to export into, Tag name
   4.413 -EXEC_EXPORT_REVISION_UNIX=${RUN} ${CD} \\"${PROMPT_FOR_DIR(Directory to export into)}\\"&& \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} export -r ${PROMPT_FOR(Tag name)} ${USER_PARAM} \\"${MODPATH}\\" ${NUR}
   4.414 -# I18N Directory to export into, Tag name
   4.415 -EXEC_EXPORT_REVISION_CYGWIN=${RUN} ${CD} \\"\\"${PROMPT_FOR_DIR(Directory to export into)}\\"\\"&& \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} export -r ${PROMPT_FOR(Tag name)} ${USER_PARAM} \\"\\"${MODPATH}\\"\\" ${NUR}
   4.416 -
   4.417 -
   4.418 -EXEC_PRE_CHECKOUT_MODULE=org.netbeans.modules.vcs.cmdline.commands.CvsModuleSelector.class ${CHECKOUT_MODULES_S_CMD} ${CHECKOUT_MODULES_C_CMD}
   4.419 -
   4.420 -#EXEC_CHECKOUT_MODULE_WIN=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM(-N -R)} {PRE_COMMAND()} ${NUR}
   4.421 -#EXEC_CHECKOUT_MODULE_UNIX=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM(-N -R)} {PRE_COMMAND()} ${NUR}
   4.422 -#EXEC_CHECKOUT_MODULE_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM(-N -R)} {PRE_COMMAND()} ${NUR}
   4.423 -# I18N The module name
   4.424 -EXEC_CHECKOUT_MODULE_WIN=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM(-N -R)} ${PROMPT_FOR[PRE_CHECKOUT_MODULE](The module name)} ${NUR}
   4.425 -# I18N The module name
   4.426 -EXEC_CHECKOUT_MODULE_UNIX=${RUN} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM(-N -R)} ${PROMPT_FOR[PRE_CHECKOUT_MODULE](The module name)} ${NUR}
   4.427 -# I18N The module name
   4.428 -EXEC_CHECKOUT_MODULE_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} checkout ${USER_PARAM(-N -R)} ${PROMPT_FOR[PRE_CHECKOUT_MODULE](The module name)} ${NUR}
   4.429 -
   4.430 -# I18N Directory to export into, Date, The module name
   4.431 -EXEC_EXPORT_MODULE_DATE_WIN=${RUN} ${CD} \\"${PROMPT_FOR_DIR(Directory to export into)}\\"&& \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} export -D \\"${PROMPT_FOR_DATE_CVS(Date)}\\" ${USER_PARAM} ${PROMPT_FOR[PRE_CHECKOUT_MODULE](The module name)}  ${NUR}
   4.432 -# I18N Directory to export into, Date, The module name
   4.433 -EXEC_EXPORT_MODULE_DATE_UNIX=${RUN} ${CD} \\"${PROMPT_FOR_DIR(Directory to export into)}\\"&& \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} export -D \\"${PROMPT_FOR_DATE_CVS(Date)}\\" ${USER_PARAM} ${PROMPT_FOR[PRE_CHECKOUT_MODULE](The module name)}  ${NUR}
   4.434 -# I18N Directory to export into, Date, The module name
   4.435 -EXEC_EXPORT_MODULE_DATE_CYGWIN=${RUN} ${CD} \\"\\"${PROMPT_FOR_DIR(Directory to export into)}\\"\\"&& \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} export -D \\"\\"${PROMPT_FOR_DATE_CVS(Date)}\\"\\" ${USER_PARAM} ${PROMPT_FOR[PRE_CHECKOUT_MODULE](The module name)}  ${NUR}
   4.436 -
   4.437 -# I18N Directory to export into, Tag name, The module name
   4.438 -EXEC_EXPORT_MODULE_REVISION_WIN=${RUN} ${CD} \\"${PROMPT_FOR_DIR(Directory to export into)}\\"&& \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} export -r ${PROMPT_FOR(Tag name)} ${USER_PARAM} ${PROMPT_FOR[PRE_CHECKOUT_MODULE](The module name)}  ${NUR}
   4.439 -# I18N Directory to export into, Tag name, The module name
   4.440 -EXEC_EXPORT_MODULE_REVISION_UNIX=${RUN} ${CD} \\"${PROMPT_FOR_DIR(Directory to export into)}\\"&& \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} export -r ${PROMPT_FOR(Tag name)} ${USER_PARAM} ${PROMPT_FOR[PRE_CHECKOUT_MODULE](The module name)}  ${NUR}
   4.441 -# I18N Directory to export into, Tag name, The module name
   4.442 -EXEC_EXPORT_MODULE_REVISION_CYGWIN=${RUN} ${CD} \\"\\"${PROMPT_FOR_DIR(Directory to export into)}\\"\\"&& \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} export -r ${PROMPT_FOR(Tag name)} ${USER_PARAM} ${PROMPT_FOR[PRE_CHECKOUT_MODULE](The module name)}  ${NUR}
   4.443 -
   4.444 -
   4.445 +EXEC_CHECKOUT_MODULES=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} checkout -N $[? MODULE_NAME] [${MODULE_NAME}] [.] ${NUR}
   4.446  
   4.447  # test suite for login.. kinda hack
   4.448 -EXEC_LOGIN_CHECK_WIN=${RUN} \\"${CVS_EXE}\\" -d :${SERVERTYPE}:${CVSROOT} checkout -c ${NUR}
   4.449 -EXEC_LOGIN_CHECK_UNIX=${RUN} \\"${CVS_EXE}\\" -d \\"\:${SERVERTYPE}\:${CVSROOT}\\" checkout -c ${NUR}
   4.450 -EXEC_LOGIN_CHECK_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" -d \\"\\":${SERVERTYPE}:${CVSROOT_\\/}\\"\\" checkout -c ${NUR}
   4.451 +EXEC_LOGIN_CHECK=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} -d ${QUOTE}:${SERVERTYPE}:${CVSROOT}${QUOTE} checkout -c ${NUR}
   4.452 +
   4.453 +# Variable TEMPDIR has to be defined by the calling class
   4.454 +EXEC_CHECKOUT_CMD=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} update -p $[? REVISION] [-r ${REVISION}] [] ${QFILE} > ${QUOTE}${TEMPDIR}${PS}${FILE}${QUOTE} ${NUR}
   4.455 +
   4.456 +EXEC_DIFF_USR_CMD=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} ${USER_GLOBAL_PARAM} diff ${USER_PARAM} ${QFILE} ${NUR}
   4.457 +
   4.458 +EXEC_DIFF_CMD=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} diff $[? REVISION1] [-r ${REVISION1}] [] $[? REVISION2] [-r ${REVISION2}] [] ${QFILE} ${NUR}
   4.459 +REGEX_DIFF_CMD=(^[0-9]+(,[0-9]+|)[d][0-9]+$)|(^[0-9]+(,[0-9]+|)[c][0-9]+(,[0-9]+|)$)|(^[0-9]+[a][0-9]+(,[0-9]+|)$)
   4.460 +
   4.461 +EXEC_LOG_INFO_CMD=${RUN} ${CD} ${QUOTE}${ROOTDIR}${PS}${MODULE}${PS}${DIR}${QUOTE}; ${QUOTE}${CVS_EXE}${QUOTE} log $[? FILE] [${QFILE}] [] ${NUR}
   4.462 +
   4.463 +EXEC_SELECTOR_REVISIONS=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionSelector.class "CVS Revision Selector" LOG_INFO_CMD
   4.464 +
   4.465 +EXEC_SELECTOR_BRANCHES=org.netbeans.modules.vcs.cmdline.commands.CvsRevisionSelector.class -b "CVS Branch Selector" LOG_INFO_CMD
   4.466 +
   4.467 +EXEC_SELECTOR_MODULES=org.netbeans.modules.vcs.cmdline.commands.CvsModuleSelector.class CHECKOUT_MODULES_S_CMD CHECKOUT_MODULES_C_CMD
   4.468 +
   4.469 +EXEC_CHECKOUT_MODULES_S_CMD=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} checkout -s ${NUR}
   4.470 +
   4.471 +EXEC_CHECKOUT_MODULES_C_CMD=${RUN} ${QUOTE}${CVS_EXE}${QUOTE} checkout -c ${NUR}
   4.472 +
   4.473 +EXEC_WATCH_ACTION_STATUS=org.netbeans.modules.vcs.cmdline.commands.CvsWatchStatus.class WATCHERS_LIST
   4.474 +
   4.475 +EXEC_WATCHERS_LIST=${RUNCDM} ${QUOTE}${CVS_EXE}${QUOTE} watchers $[? FILE] [${QFILE}] [] ${NUR}
   4.476 +
   4.477 +EXEC_CUSTOMIZER_COMMAND=org.netbeans.modules.vcs.cmdline.commands.CvsCustomizerCommand.class
   4.478  
   4.479  #--------------------------------------------------------------------
   4.480  # Variables
   4.481  
   4.482 -VAR_RUN_WIN=cmd /X /C "set CVSROOT=\:${SERVERTYPE}\:${CVSROOT}&& ${CD} \\"${ROOTDIR}\\"&&
   4.483 -VAR_RUN_UNIX=/bin/sh -c "CVSROOT=\\"\:${SERVERTYPE}\:${CVSROOT}\\"; export CVSROOT; ${CD}  \\"${ROOTDIR}\\";
   4.484 -VAR_RUN_CYGWIN=${SHELL} -c "CVSROOT\=\\"\\":${SERVERTYPE}:${CVSROOT_\\/}\\"\\"; export CVSROOT; ${CD} \\"\\"${ROOTDIR_\\/}\\"\\";
   4.485 +VAR_FS_DISPLAY_NAME=CVS
   4.486  
   4.487 -VAR_RUNCDM_WIN=cmd /X /C "set CVSROOT=:${SERVERTYPE}:${CVSROOT}&& ${CD} \\"${WORKDIR}\\"&&  
   4.488 -VAR_RUNCDM_UNIX=/bin/sh -c "CVSROOT=\\"\:${SERVERTYPE}\:${CVSROOT}\\"; export CVSROOT; ${CD}  \\"${WORKDIR}\\";
   4.489 -VAR_RUNCDM_CYGWIN=${SHELL} -c "CVSROOT\=\\"\\":${SERVERTYPE}:${CVSROOT_\\/}\\"\\"; export CVSROOT; ${CD} \\"\\"${WORKDIR}\\"\\";
   4.490 +VAR_RUN_WIN=cmd /X /C "set CVSROOT=\:${SERVERTYPE}\:${CVSROOT}&& ${CD} ${QUOTE}${ROOTDIR}${QUOTE}&&
   4.491 +VAR_RUN_UNIX=/bin/sh -c "CVSROOT=${QUOTE}\:${SERVERTYPE}\:${CVSROOT}${QUOTE}; export CVSROOT; ${CD}  ${QUOTE}${ROOTDIR}${QUOTE};
   4.492 +VAR_RUN_CYGWIN=${SHELL} -c "CVSROOT\=${QUOTE}:${SERVERTYPE}:${CVSROOT_\\/}${QUOTE}; export CVSROOT; ${CD} ${QUOTE}${ROOTDIR_\\/}${QUOTE};
   4.493 +
   4.494 +VAR_RUNCDM_WIN=cmd /X /C "set CVSROOT=:${SERVERTYPE}:${CVSROOT}&& ${CD} ${QUOTE}${WORKDIR}${QUOTE}&& 
   4.495 +VAR_RUNCDM_UNIX=/bin/sh -c "CVSROOT=${QUOTE}\:${SERVERTYPE}\:${CVSROOT}${QUOTE}; export CVSROOT; ${CD} ${QUOTE}${WORKDIR}${QUOTE};
   4.496 +VAR_RUNCDM_CYGWIN=${SHELL} -c "CVSROOT\=${QUOTE}:${SERVERTYPE}:${CVSROOT_\\/}${QUOTE}; export CVSROOT; ${CD} ${QUOTE}${WORKDIR}${QUOTE};
   4.497  
   4.498  VAR_MODPATH_WIN=$[? FILE] [$[? DIR_\\/] [$[? MODULE_\\/] [${MODULE_\\/}/${DIR_\\/}/${FILE}] [${DIR_\\/}/${FILE}]] [$[? MODULE_\\/] [${MODULE_\\/}/${FILE}] [${FILE}]]] [$[? DIR_\\/] [$[? MODULE_\\/] [${MODULE_\\/}/${DIR_\\/}] [${DIR_\\/}]] [$[? MODULE_\\/] [${MODULE_\\/}] [.]]]
   4.499  VAR_MODPATH_UNIX=$[? FILE] [$[? DIR] [$[? MODULE] [${MODULE}${PS}${DIR}${PS}${FILE}] [${DIR}${PS}${FILE}]] [$[? MODULE] [${MODULE}${PS}${FILE}] [${FILE}]]] [$[? DIR] [$[? MODULE] [${MODULE}${PS}${DIR}] [${DIR}]] [$[? MODULE] [${MODULE}] [.]]]
   4.500 @@ -364,53 +226,35 @@
   4.501  VAR_WORKDIR_UNIX=${ROOTDIR}${PS}${MODULE}${PS}${DIR}
   4.502  VAR_WORKDIR_CYGWIN=$[? MODULE] [$[? DIR] [${ROOTDIR_\\/}${PS}${MODULE_\\/}${PS}${DIR_\\/}] [${ROOTDIR_\\/}${PS}${MODULE_\\/}]] [$[? DIR] [${ROOTDIR_\\/}${PS}${DIR_\\/}] [${ROOTDIR_\\/}]]
   4.503  
   4.504 -# Variable TEMPDIR is defined by vcs.commands.CvsDiff.class
   4.505 -#VAR_CHECKOUT_CMD_WIN=${RUN} ${CD} \\"${TEMPDIR}\\"&& $[? REVISION] [\\"${CVS_EXE}\\" rtag -r ${REVISION} TEMPORARY-TAG-FOR-EXPORT \\"${MODPATH}\\"&&] [] \\"${CVS_EXE}\\" export -fnN $[? REVISION] [-r TEMPORARY-TAG-FOR-EXPORT] [-r HEAD] \\"${MODPATH}\\" $[? REVISION] [&& \\"${CVS_EXE}\\" rtag -d TEMPORARY-TAG-FOR-EXPORT \\"${MODPATH}\\"] [] ${NUR}
   4.506 -#VAR_CHECKOUT_CMD_UNIX=${RUN} ${CD} \\"${TEMPDIR}\\"; $[? REVISION] [\\"${CVS_EXE}\\" rtag -r ${REVISION} TEMPORARY-TAG-FOR-EXPORT \\"${MODPATH}\\";] [] \\"${CVS_EXE}\\" export -fnN $[? REVISION] [-r TEMPORARY-TAG-FOR-EXPORT] [-r HEAD] \\"${MODPATH}\\"; $[? REVISION] [\\"${CVS_EXE}\\" rtag -d TEMPORARY-TAG-FOR-EXPORT \\"${MODPATH}\\"] [] ${NUR}
   4.507 -#VAR_CHECKOUT_CMD_CYGWIN=${RUN} ${CD} \\"\\"${TEMPDIR}\\"\\"; $[? REVISION] [\\"\\"${CVS_EXE}\\"\\" rtag -r ${REVISION} TEMPORARY-TAG-FOR-EXPORT \\"\\"${MODPATH}\\"\\";] [] \\"\\"${CVS_EXE}\\"\\" export -fnN $[? REVISION] [-r TEMPORARY-TAG-FOR-EXPORT] [-r HEAD] \\"\\"${MODPATH}\\"\\"; $[? REVISION] [\\"${CVS_EXE}\\" rtag -d TEMPORARY-TAG-FOR-EXPORT \\"${MODPATH}\\"] [] ${NUR}
   4.508 +VAR_NOT_MODIFIABLE_FILE_STATUSES="Locally Added", "Needs Merge"
   4.509  
   4.510 -VAR_CHECKOUT_CMD_WIN=${RUNCDM} \\"${CVS_EXE}\\" update -p $[? REVISION] [-r ${REVISION}] [] \\"${FILE}\\" > \\"${TEMPDIR}${PS}${FILE}\\" ${NUR}
   4.511 -VAR_CHECKOUT_CMD_UNIX=${RUNCDM} \\"${CVS_EXE}\\" update -p $[? REVISION] [-r ${REVISION}] [] \\"${FILE}\\" > \\"${TEMPDIR}${PS}${FILE}\\" ${NUR}
   4.512 -VAR_CHECKOUT_CMD_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" update -p $[? REVISION] [-r ${REVISION}] [] \\"\\"${FILE}\\"\\" > \\"\\"${TEMPDIR}${PS}${FILE}\\"\\" ${NUR}
   4.513 +VAR_QUOTE_WIN=\\"
   4.514 +VAR_QUOTE_UNIX='
   4.515 +VAR_QUOTE_CYGWIN=\\"\\"
   4.516  
   4.517 -# Variable REVISION is defined by vcs.commands.CvsDiff.class
   4.518 -VAR_DIFF_CMD_WIN=${RUNCDM} \\"${CVS_EXE}\\" diff $[? REVISION1] [-r ${REVISION1}] [] $[? REVISION2] [-r ${REVISION2}] [] \\"${FILE}\\" ${NUR}
   4.519 -VAR_DIFF_CMD_UNIX=${RUNCDM} \\"${CVS_EXE}\\" diff $[? REVISION1] [-r ${REVISION1}] [] $[? REVISION2] [-r ${REVISION2}] [] \\"${FILE}\\" ${NUR}
   4.520 -VAR_DIFF_CMD_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" diff $[? REVISION1] [-r ${REVISION1}] [] $[? REVISION2] [-r ${REVISION2}] [] \\"\\"${FILE}\\"\\" ${NUR}
   4.521  
   4.522 -VAR_DIFF_USR_CMD_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} diff ${USER_PARAM} \\"${FILE}\\" ${NUR}
   4.523 -VAR_DIFF_USR_CMD_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} diff ${USER_PARAM} \\"${FILE}\\" ${NUR}
   4.524 -VAR_DIFF_USR_CMD_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} diff ${USER_PARAM} \\"\\"${FILE}\\"\\" ${NUR}
   4.525 +#VAR_REV_DIFF_USR_CMD_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} diff $[? REVISION1] [-r ${REVISION1}] [] $[? REVISION2] [-r ${REVISION2}] [] ${USER_PARAM} \\"${FILE}\\" ${NUR}
   4.526 +#VAR_REV_DIFF_USR_CMD_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} diff $[? REVISION1] [-r ${REVISION1}] [] $[? REVISION2] [-r ${REVISION2}] [] ${USER_PARAM} \\"${FILE}\\" ${NUR}
   4.527 +#VAR_REV_DIFF_USR_CMD_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} diff $[? REVISION1] [-r ${REVISION1}] [] $[? REVISION2] [-r ${REVISION2}] [] ${USER_PARAM} \\"\\"${FILE}\\"\\" ${NUR}
   4.528  
   4.529 -VAR_REV_DIFF_USR_CMD_WIN=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} diff $[? REVISION1] [-r ${REVISION1}] [] $[? REVISION2] [-r ${REVISION2}] [] ${USER_PARAM} \\"${FILE}\\" ${NUR}
   4.530 -VAR_REV_DIFF_USR_CMD_UNIX=${RUNCDM} \\"${CVS_EXE}\\" ${USER_GLOBAL_PARAM} diff $[? REVISION1] [-r ${REVISION1}] [] $[? REVISION2] [-r ${REVISION2}] [] ${USER_PARAM} \\"${FILE}\\" ${NUR}
   4.531 -VAR_REV_DIFF_USR_CMD_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" ${USER_GLOBAL_PARAM} diff $[? REVISION1] [-r ${REVISION1}] [] $[? REVISION2] [-r ${REVISION2}] [] ${USER_PARAM} \\"\\"${FILE}\\"\\" ${NUR}
   4.532 -REGEX_DIFF=(^[0-9]+(,[0-9]+|)[d][0-9]+$)|(^[0-9]+(,[0-9]+|)[c][0-9]+(,[0-9]+|)$)|(^[0-9]+[a][0-9]+(,[0-9]+|)$)|(^retrieving revision.*)
   4.533 -
   4.534 -VAR_LOG_INFO_CMD_WIN=${RUNCDM} \\"${CVS_EXE}\\" log $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.535 -VAR_LOG_INFO_CMD_UNIX=${RUNCDM} \\"${CVS_EXE}\\" log $[? FILE] [\\"${FILE}\\"] [] ${NUR}
   4.536 -VAR_LOG_INFO_CMD_CYGWIN=${RUNCDM} \\"\\"${CVS_EXE}\\"\\" log $[? FILE] [\\"\\"${FILE}\\"\\"] [] ${NUR}
   4.537 -# Variable CVS_TAG is defined by vcs.commands.CvsAddTag.class
   4.538 -VAR_ADD_TAG_CMD_WIN=${RUN} \\"${CVS_EXE}\\" ${CVS_TAG} \\"${MODPATH}\\" ${NUR}
   4.539 -VAR_ADD_TAG_CMD_UNIX=${RUN} \\"${CVS_EXE}\\" ${CVS_TAG} \\"${MODPATH}\\" ${NUR}
   4.540 -VAR_ADD_TAG_CMD_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" ${CVS_TAG} \\"\\"${MODPATH}\\"\\" ${NUR}
   4.541  VAR_CVS_EXE=cvs
   4.542  VAR_SHELL=c:\\cygnus\\cygwin-b20\\H-i586-cygwin32\\bin\\sh.exe
   4.543  VAR_CYGWINBIN=c:/cygnus/cygwin-b20/H-i586-cygwin32/bin
   4.544 -VAR_MODULE_SELECT_WIN=org.netbeans.modules.vcs.cmdline.commands.CvsModuleSelector.class ${RUN} \\"${CVS_EXE}\\" checkout -s ${NUR}
   4.545 -VAR_MODULE_SELECT_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsModuleSelector.class ${RUN} \\"${CVS_EXE}\\" checkout -s ${NUR}
   4.546 -VAR_MODULE_SELECT_CYGWIN=org.netbeans.modules.vcs.cmdline.commands.CvsModuleSelector.class ${RUN} \\"\\"${CVS_EXE}\\"\\" checkout -s ${NUR}
   4.547 +#VAR_MODULE_SELECT_WIN=org.netbeans.modules.vcs.cmdline.commands.CvsModuleSelector.class ${RUN} \\"${CVS_EXE}\\" checkout -s ${NUR}
   4.548 +#VAR_MODULE_SELECT_UNIX=org.netbeans.modules.vcs.cmdline.commands.CvsModuleSelector.class ${RUN} \\"${CVS_EXE}\\" checkout -s ${NUR}
   4.549 +#VAR_MODULE_SELECT_CYGWIN=org.netbeans.modules.vcs.cmdline.commands.CvsModuleSelector.class ${RUN} \\"\\"${CVS_EXE}\\"\\" checkout -s ${NUR}
   4.550  
   4.551 -VAR_CHECKOUT_MODULES_S_CMD_WIN=${RUN} \\"${CVS_EXE}\\" checkout -s ${NUR}
   4.552 -VAR_CHECKOUT_MODULES_S_CMD_UNIX=${RUN} \\"${CVS_EXE}\\" checkout -s ${NUR}
   4.553 -VAR_CHECKOUT_MODULES_S_CMD_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" checkout -s ${NUR}
   4.554 +#VAR_CHECKOUT_MODULES_S_CMD_WIN=${RUN} \\"${CVS_EXE}\\" checkout -s ${NUR}
   4.555 +#VAR_CHECKOUT_MODULES_S_CMD_UNIX=${RUN} \\"${CVS_EXE}\\" checkout -s ${NUR}
   4.556 +#VAR_CHECKOUT_MODULES_S_CMD_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" checkout -s ${NUR}
   4.557  
   4.558 -VAR_CHECKOUT_MODULES_C_CMD_WIN=${RUN} \\"${CVS_EXE}\\" checkout -c ${NUR}
   4.559 -VAR_CHECKOUT_MODULES_C_CMD_UNIX=${RUN} \\"${CVS_EXE}\\" checkout -c ${NUR}
   4.560 -VAR_CHECKOUT_MODULES_C_CMD_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" checkout -c ${NUR}
   4.561 +#VAR_CHECKOUT_MODULES_C_CMD_WIN=${RUN} \\"${CVS_EXE}\\" checkout -c ${NUR}
   4.562 +#VAR_CHECKOUT_MODULES_C_CMD_UNIX=${RUN} \\"${CVS_EXE}\\" checkout -c ${NUR}
   4.563 +#VAR_CHECKOUT_MODULES_C_CMD_CYGWIN=${RUN} \\"\\"${CVS_EXE}\\"\\" checkout -c ${NUR}
   4.564  
   4.565  # I18N all without "${FILE}"
   4.566  VAR_REMOVE_MSG=Are you sure you want to remove the file ${FILE} ? Local file will be deleted permanently.
   4.567 +# I18N
   4.568  VAR_UNEDIT_MSG=Do you want to revert the changes ?
   4.569  #VAR_REMOVEDIR_MSG=
   4.570  #VAR_REMOVEDIR_MSG=Are you sure you want to delete the directory ${FILE} ?\nThe whole directory content will be deleted.
     5.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/Cust1WorkPanel.java	Mon Jan 22 13:24:46 2001 +0000
     5.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/Cust1WorkPanel.java	Mon Jan 22 20:58:06 2001 +0000
     5.3 @@ -13,17 +13,17 @@
     5.4  
     5.5  package org.netbeans.modules.vcs.cmdline;
     5.6  
     5.7 -import org.openide.util.*;
     5.8 -import org.openide.*;
     5.9 -
    5.10 -import org.netbeans.modules.vcs.util.*;
    5.11 -
    5.12  import javax.swing.event.*;
    5.13  import java.awt.event.*;
    5.14  import java.io.*;
    5.15  import javax.swing.JFrame;
    5.16  import java.util.*;
    5.17  
    5.18 +import org.openide.*;
    5.19 +import org.openide.util.*;
    5.20 +
    5.21 +import org.netbeans.modules.vcscore.util.*;
    5.22 +
    5.23  /** The first panel in the wizard.
    5.24   * Lets the user fill  out cvs exe command location, current working directory and refresh period.
    5.25   *
    5.26 @@ -217,7 +217,7 @@
    5.27  
    5.28    private void btnShellActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnShellActionPerformed
    5.29          ChooseFileDialog chooseFile=new ChooseFileDialog(new JFrame(), new File(txShell.getText ()), false);
    5.30 -        MiscStuff.centerWindow (chooseFile);
    5.31 +        VcsUtilities.centerWindow (chooseFile);
    5.32          HelpCtx.setHelpIDString (chooseFile.getRootPane (), NewCvsCustomizer.class.getName ());
    5.33          chooseFile.show();
    5.34          String selected=chooseFile.getSelectedFile();
    5.35 @@ -232,7 +232,7 @@
    5.36  
    5.37    private void btnCvsExeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCvsExeActionPerformed
    5.38          ChooseFileDialog chooseFile=new ChooseFileDialog(new JFrame(), new File(txCvsExe.getText ()), false);
    5.39 -        MiscStuff.centerWindow (chooseFile);
    5.40 +        VcsUtilities.centerWindow (chooseFile);
    5.41          HelpCtx.setHelpIDString (chooseFile.getRootPane (), NewCvsCustomizer.class.getName ());
    5.42          chooseFile.show();
    5.43          String selected=chooseFile.getSelectedFile();
    5.44 @@ -246,7 +246,7 @@
    5.45    private void btnWorkingActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnWorkingActionPerformed
    5.46  // Add your handling code here:
    5.47          ChooseDirDialog chooseDir=new ChooseDirDialog(new JFrame(), new File(txWorking.getText ()));
    5.48 -        MiscStuff.centerWindow (chooseDir);
    5.49 +        VcsUtilities.centerWindow (chooseDir);
    5.50          HelpCtx.setHelpIDString (chooseDir.getRootPane (), NewCvsCustomizer.class.getName ());
    5.51          chooseDir.show();
    5.52          String selected=chooseDir.getSelectedDir();
     6.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/Cust2ServerPanel.java	Mon Jan 22 13:24:46 2001 +0000
     6.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/Cust2ServerPanel.java	Mon Jan 22 20:58:06 2001 +0000
     6.3 @@ -13,18 +13,18 @@
     6.4  
     6.5  package org.netbeans.modules.vcs.cmdline;
     6.6  
     6.7 -
     6.8 -import org.openide.util.*;
     6.9 -import org.openide.*;
    6.10 -
    6.11  import javax.swing.event.*;
    6.12  import javax.swing.*;
    6.13  import java.awt.event.*;
    6.14  import java.io.*;
    6.15  import java.util.*;
    6.16  
    6.17 +import org.openide.util.*;
    6.18 +import org.openide.*;
    6.19 +
    6.20 +import org.netbeans.modules.vcscore.util.*;
    6.21 +
    6.22  import org.netbeans.modules.vcs.cmdline.passwd.*;
    6.23 -import org.netbeans.modules.vcs.util.*;
    6.24  
    6.25  /** Panel in the NewCvsCustomizer which takes care of CVS server settings.
    6.26   * After the user fills in all info needed and the type of server is pserver, looks in the .cvspass file for settings.
    6.27 @@ -247,7 +247,7 @@
    6.28    private void btnRepositoryActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRepositoryActionPerformed
    6.29  // Add your handling code here
    6.30          ChooseDirDialog chooseDir=new ChooseDirDialog(new JFrame(), new File(txRepository.getText ()));
    6.31 -        MiscStuff.centerWindow (chooseDir);
    6.32 +        VcsUtilities.centerWindow (chooseDir);
    6.33          HelpCtx.setHelpIDString (chooseDir.getRootPane (), NewCvsCustomizer.class.getName ());
    6.34          chooseDir.show();
    6.35          String selected=chooseDir.getSelectedDir();
    6.36 @@ -321,7 +321,7 @@
    6.37         if (!isLoggedIn(loginCancelled)) {
    6.38           //return 2;
    6.39             if (loginCancelled[0]) return 2; // return me if the login was cancelled
    6.40 -           fs.setDoCommandRefresh(false); // set offline mode
    6.41 +           fs.setOffLine(true); // set offline mode
    6.42             return 4; // skip checkout when not logged in
    6.43         }    
    6.44         if (this.rbLocal.isSelected()) { // see BUG no 6990 - needs to check if the repository is initiated
     7.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/Cust3CheckoutPanel.java	Mon Jan 22 13:24:46 2001 +0000
     7.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/Cust3CheckoutPanel.java	Mon Jan 22 20:58:06 2001 +0000
     7.3 @@ -13,18 +13,21 @@
     7.4  
     7.5  package org.netbeans.modules.vcs.cmdline;
     7.6  
     7.7 -
     7.8 -import org.openide.util.*;
     7.9 -import org.openide.*;
    7.10 -
    7.11  import javax.swing.event.*;
    7.12  import javax.swing.table.*;
    7.13  import java.awt.event.*;
    7.14  import java.io.*;
    7.15  import java.util.*;
    7.16  
    7.17 -import org.netbeans.modules.vcs.util.*;
    7.18 -import org.netbeans.modules.vcs.*;
    7.19 +import org.openide.util.*;
    7.20 +import org.openide.*;
    7.21 +
    7.22 +import org.netbeans.modules.vcscore.VcsConfigVariable;
    7.23 +import org.netbeans.modules.vcscore.util.*;
    7.24 +//import org.netbeans.modules.vcscore.cmdline.*;
    7.25 +import org.netbeans.modules.vcscore.commands.*;
    7.26 +//import org.netbeans.modules.vcscore.commands.CommandListener;
    7.27 +//import org.netbeans.modules.vcscore.commands.VcsCommandExecutor;
    7.28  
    7.29  /** This panel attempts to get the list of modules from the server.
    7.30   * Then lets the user pick one or more modules for checkout and issues
    7.31 @@ -33,11 +36,12 @@
    7.32   * @version 1.0
    7.33   */
    7.34  public class Cust3CheckoutPanel extends javax.swing.JPanel implements CvsCustomPanel, WizardDescriptor.Panel, 
    7.35 -                                                                      org.netbeans.modules.vcs.cmdline.exec.RegexListener {
    7.36 +                                                                      CommandDataOutputListener {
    7.37      private ArrayList listeners = new ArrayList ();
    7.38      private javax.swing.ButtonGroup bg;
    7.39      
    7.40      private CvsFileSystem fs;
    7.41 +    private CommandsPool cPool;
    7.42      private NewCvsCustomizer customizer;
    7.43      private Vector modules = null;
    7.44      private String[] modulesSelected;
    7.45 @@ -46,8 +50,8 @@
    7.46      private StringBuffer outputBuffer = null;
    7.47      private boolean completeIsDone;
    7.48      private CompleteStatusOutput completeList;
    7.49 -    private ExecuteCommand cModule;
    7.50 -    private ExecuteCommand sModule;
    7.51 +    private VcsCommandExecutor cModule;
    7.52 +    private VcsCommandExecutor sModule;
    7.53  
    7.54      
    7.55      static final long serialVersionUID = 3353171355503637057L;
    7.56 @@ -284,6 +288,7 @@
    7.57        customizer = (NewCvsCustomizer)settings;
    7.58        fs = customizer.getFileSystem();
    7.59        if (fs != null) {
    7.60 +          cPool = fs.getCommandsPool();
    7.61            customizer.setChanges();
    7.62            doSelectModule();
    7.63            customizer.unSetChanges();
    7.64 @@ -309,7 +314,7 @@
    7.65                return;
    7.66            }
    7.67            modulesSelected = sels;
    7.68 -          list = MiscStuff.arrayToQuotedString(modulesSelected, customizer.useUnixShell);
    7.69 +          list = VcsUtilities.arrayToQuotedString(modulesSelected, customizer.useUnixShell);
    7.70            customizer.setChanges();
    7.71            doCheckoutModule(list);
    7.72            customizer.unSetChanges();
    7.73 @@ -319,7 +324,7 @@
    7.74          if (!txFreeForm.getText().equals(""))  {
    7.75            modulesSelected = new String[1];
    7.76            modulesSelected[0] = txFreeForm.getText();
    7.77 -          list = MiscStuff.arrayToQuotedString(modulesSelected, customizer.useUnixShell);
    7.78 +          list = VcsUtilities.arrayToQuotedString(modulesSelected, customizer.useUnixShell);
    7.79            customizer.setChanges();
    7.80            doCheckoutModule(list);
    7.81            customizer.unSetChanges();
    7.82 @@ -366,29 +371,34 @@
    7.83    
    7.84    
    7.85    public void killAllRunning() {
    7.86 -      if (cModule != null) cModule.stop();
    7.87 -      if (sModule != null) sModule.stop();
    7.88 +      if (cModule != null) cPool.kill(cModule);
    7.89 +      if (sModule != null) cPool.kill(sModule);
    7.90    }
    7.91    
    7.92    private void doSelectModule() {
    7.93        outputBuffer = new StringBuffer();
    7.94 -      VcsConfigVariable var = (VcsConfigVariable) fs.getVariablesByName().get ("MODULE_NAME");
    7.95 -      if (var == null) return;
    7.96 -      UserCommand coModule = fs.getCommand("CUSTOMIZER");
    7.97 -      OutputContainer container = new OutputContainer(g("MSG_VariableSelector"));
    7.98 -      final ExecuteCommand es = new ExecuteCommand(fs, coModule, fs.getVariablesAsHashtable());
    7.99 -      es.setErrorNoRegexListener(container);
   7.100 -      es.setOutputNoRegexListener(container);
   7.101 -      es.setErrorContainer(container);
   7.102 -      es.setOutputListener(this);
   7.103 -      sModule = es;
   7.104 +      //VcsConfigVariable var = (VcsConfigVariable) fs.getVariablesByName().get ("MODULE_NAME");
   7.105 +      //if (var == null) return;
   7.106 +      VcsCommand coModule = fs.getCommand("CUSTOMIZER");
   7.107 +      //OutputContainer container = new OutputContainer(g("MSG_VariableSelector"));
   7.108 +      //final ExecuteCommand es = new ExecuteCommand(fs, coModule, fs.getVariablesAsHashtable());
   7.109 +      final VcsCommandExecutor vce = fs.getVcsFactory().getCommandExecutor(coModule, fs.getVariablesAsHashtable());
   7.110 +      //es.setErrorNoRegexListener(container);
   7.111 +      //es.setOutputNoRegexListener(container);
   7.112 +      //es.setErrorContainer(container);
   7.113 +      //es.setOutputListener(this);
   7.114 +      vce.addDataOutputListener(this);
   7.115 +      sModule = vce;
   7.116        doGetAllModules();
   7.117        waitingForModules();
   7.118  //javax.swing.SwingUtilities.invokeLater(new Runnable() {
   7.119  //public void run() {
   7.120        new Thread ("CVS-ModuleSelection") {
   7.121            public void run() {
   7.122 -              es.start();
   7.123 +              //es.start();
   7.124 +              cPool.startExecutor(vce);
   7.125 +              cPool.waitToFinish(vce);
   7.126 +              /*
   7.127                try {
   7.128                    es.join();
   7.129                    sModule = null;
   7.130 @@ -396,6 +406,7 @@
   7.131                    sModule = null;
   7.132                    return;
   7.133                }
   7.134 +               */
   7.135                Vector vect = getModules();
   7.136                try {
   7.137                  while (!completeIsDone) {
   7.138 @@ -417,22 +428,42 @@
   7.139    }
   7.140    
   7.141    private void doCheckoutModule(String moduleList) {
   7.142 -      VcsConfigVariable var = (VcsConfigVariable) fs.getVariablesByName().get ("MODULE_NAME");
   7.143 -      if (var == null) return;
   7.144 -      var.setValue(moduleList);
   7.145 -      UserCommand coModule = fs.getCommand("CHECKOUT_MODULES");
   7.146 -      OutputContainer container = new OutputContainer(g("MSG_VariableSelector"));
   7.147 -      final ExecuteCommand es = new ExecuteCommand(fs, coModule,
   7.148 -                                                   fs.getVariablesAsHashtable());
   7.149 +      //VcsConfigVariable var = (VcsConfigVariable) fs.getVariablesByName().get ("MODULE_NAME");
   7.150 +      //if (var == null) return;
   7.151 +      //var.setValue(moduleList);
   7.152 +      VcsCommand coModule = fs.getCommand("CHECKOUT_MODULES");
   7.153 +      //OutputContainer container = new OutputContainer(g("MSG_VariableSelector"));
   7.154 +      //final ExecuteCommand es = new ExecuteCommand(fs, coModule,
   7.155 +      //                                             fs.getVariablesAsHashtable());
   7.156 +      final VcsCommandExecutor vce = fs.getVcsFactory().getCommandExecutor(coModule, fs.getVariablesAsHashtable());
   7.157 +      /*
   7.158        es.setErrorNoRegexListener(container);
   7.159        es.setOutputNoRegexListener(container);
   7.160        es.setErrorContainer(container);
   7.161 +       */
   7.162        customizer.setWait(true);
   7.163 +      cPool.addCommandListener(new CommandListener() {
   7.164 +          public void commandStarted(VcsCommandExecutor vce) {
   7.165 +          }
   7.166 +          
   7.167 +          public void commandDone(VcsCommandExecutor vceDone) {
   7.168 +              if (vce == vceDone) {
   7.169 +                  customizer.setWait(false);
   7.170 +                  cPool.removeCommandListener(this);
   7.171 +              }
   7.172 +          }
   7.173 +      });
   7.174 +      cPool.startExecutor(vce);
   7.175  //javax.swing.SwingUtilities.invokeLater(new Runnable() {
   7.176  //public void run() {
   7.177 +      /*
   7.178        new Thread ("CVS-ModuleCheckout") {
   7.179            public void run() {
   7.180 -              es.start();
   7.181 +              //es.start();
   7.182 +              cPool.startExecutor(vce);
   7.183 +              cPool.waitToFinish(vce);
   7.184 +              customizer.setWait(false);
   7.185 +              /*
   7.186                try {
   7.187                    es.join();
   7.188                    customizer.setWait(false);
   7.189 @@ -443,24 +474,46 @@
   7.190                
   7.191            }
   7.192        }.start();
   7.193 +      */
   7.194    }
   7.195  
   7.196      private void doGetAllModules() {
   7.197        completeIsDone = false;
   7.198 -      UserCommand coModule = fs.getCommand("GET_MODULE_NAME");
   7.199 -      OutputContainer container = new OutputContainer(g("MSG_VariableSelector"));
   7.200 -      final ExecuteCommand es = new ExecuteCommand(fs, coModule,
   7.201 -                                                   fs.getVariablesAsHashtable());
   7.202 -      es.setErrorNoRegexListener(container);
   7.203 -      es.setOutputNoRegexListener(container);
   7.204 -      es.setErrorContainer(container);
   7.205 -      completeList = new CompleteStatusOutput();
   7.206 -      es.setOutputListener(completeList);
   7.207 +      VcsCommand coModule = fs.getCommand("GET_MODULE_NAME");
   7.208 +      //OutputContainer container = new OutputContainer(g("MSG_VariableSelector"));
   7.209 +      //final ExecuteCommand es = new ExecuteCommand(fs, coModule,
   7.210 +      //                                             fs.getVariablesAsHashtable());
   7.211 +      final VcsCommandExecutor vce = fs.getVcsFactory().getCommandExecutor(coModule, fs.getVariablesAsHashtable());
   7.212 +      //es.setErrorNoRegexListener(container);
   7.213 +      //es.setOutputNoRegexListener(container);
   7.214 +      //es.setErrorContainer(container);
   7.215 +      //completeList = new CompleteStatusOutput();
   7.216 +      //es.setOutputListener(completeList);
   7.217 +      vce.addDataOutputListener(completeList);
   7.218        customizer.setWait(true);
   7.219 -      cModule = es;
   7.220 +      cModule = vce;
   7.221 +      cPool.addCommandListener(new CommandListener() {
   7.222 +          public void commandStarted(VcsCommandExecutor vce) {
   7.223 +          }
   7.224 +          
   7.225 +          public void commandDone(VcsCommandExecutor vceDone) {
   7.226 +              if (vce == vceDone) {
   7.227 +                  cModule = null;
   7.228 +                  completeIsDone = true;
   7.229 +                  cPool.removeCommandListener(this);
   7.230 +              }
   7.231 +          }
   7.232 +      });
   7.233 +      cPool.startExecutor(vce);
   7.234        D("Get all ready");
   7.235 +      /*
   7.236        new Thread ("CVS-GetAllModules") {
   7.237            public void run() {
   7.238 +              cPool.startExecutor(vce);
   7.239 +              cPool.waitToFinish(vce);
   7.240 +              cModule = null;
   7.241 +              completeIsDone = true;
   7.242 +              /*
   7.243                es.start();
   7.244                try {
   7.245                    es.join();
   7.246 @@ -470,18 +523,19 @@
   7.247                    completeIsDone=true;
   7.248                    return;
   7.249                }
   7.250 -              
   7.251 +               *
   7.252            }
   7.253        }.start();
   7.254 +      */
   7.255    }
   7.256  
   7.257    
   7.258    
   7.259 -/** method from the NoRegExpListener.
   7.260 - * reads al output of the checkout -s command.
   7.261 - * @param elements lines.
   7.262 - */
   7.263 -  public void match(String[] elements) {
   7.264 +  /** method from the NoRegExpListener.
   7.265 +   * reads al output of the checkout -s command.
   7.266 +   * @param elements lines.
   7.267 +   */
   7.268 +  public void outputData(String[] elements) {
   7.269        if (elements[0].length() > 0 && elements[0].charAt(0) != '#')
   7.270            outputBuffer.append(elements[0]+"\n");
   7.271    }
   7.272 @@ -555,7 +609,7 @@
   7.273        
   7.274    }
   7.275    
   7.276 -  private final class CompleteStatusOutput implements org.netbeans.modules.vcs.cmdline.exec.RegexListener {
   7.277 +  private final class CompleteStatusOutput implements CommandDataOutputListener {
   7.278      private LinkedList statuses;
   7.279      
   7.280      public CompleteStatusOutput() {
   7.281 @@ -587,7 +641,7 @@
   7.282     * reads al output of the checkout -c command.
   7.283     * @param elements lines.
   7.284     */
   7.285 -    public void match(String[] elements) {
   7.286 +    public void outputData(String[] elements) {
   7.287         if (elements[0].length() > 0 && elements[0].charAt(0) != '#') {
   7.288             String start = elements[0];
   7.289             if (start == null) return;
     8.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/Cust4MountPanel.java	Mon Jan 22 13:24:46 2001 +0000
     8.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/Cust4MountPanel.java	Mon Jan 22 20:58:06 2001 +0000
     8.3 @@ -13,9 +13,6 @@
     8.4  
     8.5  package org.netbeans.modules.vcs.cmdline;
     8.6  
     8.7 -import org.openide.WizardDescriptor;
     8.8 -import org.openide.util.*;
     8.9 -
    8.10  import javax.swing.event.*;
    8.11  import java.awt.event.*;
    8.12  import javax.swing.tree.*;
    8.13 @@ -24,7 +21,13 @@
    8.14  import java.awt.event.*;
    8.15  import java.io.*;
    8.16  import java.util.*;
    8.17 -import org.netbeans.modules.vcs.*;
    8.18 +
    8.19 +import org.openide.WizardDescriptor;
    8.20 +import org.openide.util.*;
    8.21 +
    8.22 +import org.netbeans.modules.vcscore.*;
    8.23 +import org.netbeans.modules.vcscore.cmdline.RelativeMountPanel;
    8.24 +
    8.25  /**
    8.26   *
    8.27   * @author  mkleint
     9.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/CvsCustomizer.java	Mon Jan 22 13:24:46 2001 +0000
     9.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/CvsCustomizer.java	Mon Jan 22 20:58:06 2001 +0000
     9.3 @@ -12,6 +12,7 @@
     9.4   */
     9.5  
     9.6  package org.netbeans.modules.vcs.cmdline;
     9.7 +
     9.8  import java.io.*;
     9.9  import java.util.*;
    9.10  import java.beans.*;
    9.11 @@ -24,15 +25,16 @@
    9.12  import org.openide.*;
    9.13  import org.openide.util.*;
    9.14  
    9.15 -import org.netbeans.modules.vcs.*;
    9.16 -import org.netbeans.modules.vcs.util.*;
    9.17 +import org.netbeans.modules.vcscore.*;
    9.18 +import org.netbeans.modules.vcscore.commands.*;
    9.19 +import org.netbeans.modules.vcscore.cmdline.RelativeMountDialog;
    9.20 +import org.netbeans.modules.vcscore.util.*;
    9.21 +
    9.22  import org.netbeans.modules.vcs.cmdline.passwd.*;
    9.23  
    9.24 -
    9.25  /**
    9.26   * Customizer
    9.27   * @author  Martin Entlicher
    9.28 - * @version 
    9.29   */
    9.30  public class CvsCustomizer extends javax.swing.JDialog implements Customizer {
    9.31      private Debug E=new Debug("CvsCustomizer", true); // NOI18N
    9.32 @@ -87,7 +89,7 @@
    9.33          jTabbedPane2.setTitleAt(1, org.openide.util.NbBundle.getBundle("org.netbeans.modules.vcs.cmdline.Bundle").getString("CvsCustomizer.tab1Title"));
    9.34          jTabbedPane2.setTitleAt(2, org.openide.util.NbBundle.getBundle("org.netbeans.modules.vcs.cmdline.Bundle").getString("CvsCustomizer.tab2Title"));
    9.35          pack ();
    9.36 -        MiscStuff.centerWindow(this);
    9.37 +        VcsUtilities.centerWindow(this);
    9.38          D.deb("constructor done");
    9.39      }
    9.40  
    9.41 @@ -635,7 +637,7 @@
    9.42          
    9.43          RelativeMountDialog mountDlg = new RelativeMountDialog(new JFrame(), true);
    9.44          //ChooseDirDialog chooseDir = new ChooseDirDialog(new JFrame(), new File(dir));
    9.45 -        MiscStuff.centerWindow (mountDlg);
    9.46 +        VcsUtilities.centerWindow (mountDlg);
    9.47          HelpCtx.setHelpIDString (mountDlg.getRootPane (), CvsCustomizer.class.getName ());
    9.48          mountDlg.setRootDir(work);
    9.49          mountDlg.setRelMount(txRelMount.getText());
    9.50 @@ -688,7 +690,7 @@
    9.51    private void repositoryButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_repositoryButtonActionPerformed
    9.52  // Add your handling code here:
    9.53          ChooseDirDialog chooseDir=new ChooseDirDialog(new JFrame(), new File(repositoryTextField.getText ()));
    9.54 -        MiscStuff.centerWindow (chooseDir);
    9.55 +        VcsUtilities.centerWindow (chooseDir);
    9.56          HelpCtx.setHelpIDString (chooseDir.getRootPane (), CvsCustomizer.class.getName ());
    9.57          chooseDir.show();
    9.58          String selected=chooseDir.getSelectedDir();
    9.59 @@ -708,7 +710,7 @@
    9.60    private void browseButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_browseButtonActionPerformed
    9.61  // Add your handling code here:
    9.62          ChooseDirDialog chooseDir=new ChooseDirDialog(new JFrame(), new File(rootDirTextField.getText ()));
    9.63 -        MiscStuff.centerWindow (chooseDir);
    9.64 +        VcsUtilities.centerWindow (chooseDir);
    9.65          HelpCtx.setHelpIDString (chooseDir.getRootPane (), CvsCustomizer.class.getName ());
    9.66          chooseDir.show();
    9.67          String selected=chooseDir.getSelectedDir();
    9.68 @@ -732,7 +734,7 @@
    9.69          String dir = work;
    9.70          
    9.71          ChooseDirDialog chooseDir = new ChooseDirDialog(new JFrame(), new File(dir));
    9.72 -        MiscStuff.centerWindow (chooseDir);
    9.73 +        VcsUtilities.centerWindow (chooseDir);
    9.74          HelpCtx.setHelpIDString (chooseDir.getRootPane (), CvsCustomizer.class.getName ());
    9.75          chooseDir.show();
    9.76          String selected = chooseDir.getSelectedDir();
    9.77 @@ -754,7 +756,7 @@
    9.78    private void cvsExeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cvsExeButtonActionPerformed
    9.79  // Add your handling code here:
    9.80          ChooseFileDialog chooseFile=new ChooseFileDialog(new JFrame(), new File(cvsExeTextField.getText ()), false);
    9.81 -        MiscStuff.centerWindow (chooseFile);
    9.82 +        VcsUtilities.centerWindow (chooseFile);
    9.83          HelpCtx.setHelpIDString (chooseFile.getRootPane (), CvsCustomizer.class.getName ());
    9.84          chooseFile.show();
    9.85          String selected=chooseFile.getSelectedFile();
    9.86 @@ -769,7 +771,7 @@
    9.87    private void cygwinButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cygwinButtonActionPerformed
    9.88  // Add your handling code here:
    9.89          ChooseFileDialog chooseFile=new ChooseFileDialog(new JFrame(), new File(cygwinTextField.getText ()), false);
    9.90 -        MiscStuff.centerWindow (chooseFile);
    9.91 +        VcsUtilities.centerWindow (chooseFile);
    9.92          HelpCtx.setHelpIDString (chooseFile.getRootPane (), CvsCustomizer.class.getName ());
    9.93          chooseFile.show();
    9.94          String selected=chooseFile.getSelectedFile();
    9.95 @@ -805,7 +807,7 @@
    9.96                  //setVisible(true);
    9.97                  return;
    9.98              } else {
    9.99 -                fileSystem.setDoCommandRefresh(false); // set offline mode
   9.100 +                fileSystem.setOffLine(true); // set offline mode
   9.101              }
   9.102          }
   9.103          setVisible(false);
   9.104 @@ -816,7 +818,7 @@
   9.105          }   
   9.106          else {
   9.107   */
   9.108 -        fileSystem.getCache().refreshDirFromDiskCache("");
   9.109 +        fileSystem.getCacheProvider().refreshDirFromDiskCache(fileSystem.getFile(""));
   9.110          org.openide.TopManager.getDefault ().getRepository ().addFileSystem (fileSystem);
   9.111          closeDialog(null);
   9.112    }//GEN-LAST:event_okButtonActionPerformed
   9.113 @@ -967,12 +969,12 @@
   9.114          
   9.115          advancedOptCheckBox.setSelected(fileSystem.isAcceptUserParams());
   9.116          callEditCheckBox.setSelected(fileSystem.isCallEditFilesOn());
   9.117 -        checkMsgTemplCheckBox.setSelected(fileSystem.isExecutePreCommit());
   9.118 +        //checkMsgTemplCheckBox.setSelected(fileSystem.isExecutePreCommit());
   9.119          debugCheckBox.setSelected(fileSystem.getDebug());
   9.120          lockCheckBox.setSelected(fileSystem.isLockFilesOn());
   9.121          lockPromptCheckBox.setSelected(fileSystem.isPromptForLockOn());
   9.122          lockPromptCheckBox.setEnabled(fileSystem.isLockFilesOn());
   9.123 -        runRefreshCheckBox.setSelected(fileSystem.isDoCommandRefresh());
   9.124 +        runRefreshCheckBox.setSelected(!fileSystem.isOffLine());
   9.125      }
   9.126  
   9.127      public void applyChanges() {
   9.128 @@ -1009,8 +1011,14 @@
   9.129          if (!lastRootDir.equals(value)) {
   9.130              //fileSystem.setRootDirectory(new File(value));
   9.131              rootDirChanged(value, true);
   9.132 -            fileSystem.setRelativeMountPoint(""); // we need to do that because the working dir changed
   9.133 -            fileSystem.setCvsModule(""); // we need to do that because the working dir changed
   9.134 +            try {
   9.135 +                fileSystem.setRelativeMountPoint(""); // we need to do that because the working dir changed
   9.136 +                fileSystem.setCvsModule(""); // we need to do that because the working dir changed
   9.137 +            } catch (java.beans.PropertyVetoException pvexc) {
   9.138 +                // Ignored
   9.139 +            } catch (java.io.IOException ioexc) {
   9.140 +                // Ignored
   9.141 +            }
   9.142              lastRootDir = value;
   9.143          }
   9.144  /*  MK       value = customModule.getModuleTextField();
   9.145 @@ -1023,8 +1031,14 @@
   9.146          value = txRelMount.getText();
   9.147          if (!lastRelMount.equals(value)) {
   9.148              lastRelMount = value;
   9.149 -            fileSystem.setRelativeMountPoint(value);
   9.150 -            fileSystem.setCvsModule (value);
   9.151 +            try {
   9.152 +                fileSystem.setRelativeMountPoint(value);
   9.153 +                fileSystem.setCvsModule (value);
   9.154 +            } catch (java.beans.PropertyVetoException pvexc) {
   9.155 +                // Ignored
   9.156 +            } catch (java.io.IOException ioexc) {
   9.157 +                // Ignored
   9.158 +            }
   9.159              //rootDirChanged(rootDirTextField.getText(), false);
   9.160          }
   9.161  
   9.162 @@ -1052,10 +1066,10 @@
   9.163          fileSystem.setPromptForLockOn(lockPromptCheckBox.isSelected());
   9.164          fileSystem.setLockFilesOn(lockCheckBox.isSelected());
   9.165          fileSystem.setDebug(debugCheckBox.isSelected());
   9.166 -        fileSystem.setExecutePreCommit(checkMsgTemplCheckBox.isSelected());
   9.167 +        //fileSystem.setExecutePreCommit(checkMsgTemplCheckBox.isSelected());
   9.168          fileSystem.setCallEditFilesOn(callEditCheckBox.isSelected());
   9.169          fileSystem.setAcceptUserParams(advancedOptCheckBox.isSelected());
   9.170 -        fileSystem.setDoCommandRefresh(runRefreshCheckBox.isSelected());
   9.171 +        fileSystem.setOffLine(!runRefreshCheckBox.isSelected());
   9.172      }
   9.173  
   9.174      public void setChanges() {
   9.175 @@ -1112,15 +1126,15 @@
   9.176      }
   9.177  
   9.178      private void removeEnterFromKeymap() {
   9.179 -        MiscStuff.removeEnterFromKeymap(userTextField);
   9.180 -        MiscStuff.removeEnterFromKeymap(serverTextField);
   9.181 -        MiscStuff.removeEnterFromKeymap(repositoryTextField);
   9.182 -        MiscStuff.removeEnterFromKeymap(rootDirTextField);
   9.183 -//MK        MiscStuff.removeEnterFromKeymap(moduleTextField);
   9.184 -//MK        MiscStuff.removeEnterFromKeymap(relMountTextField);
   9.185 -        MiscStuff.removeEnterFromKeymap(cvsExeTextField);
   9.186 -        MiscStuff.removeEnterFromKeymap(cygwinTextField);
   9.187 -//        MiscStuff.removeEnterFromKeymap(refreshTextField);
   9.188 +        VcsUtilities.removeEnterFromKeymap(userTextField);
   9.189 +        VcsUtilities.removeEnterFromKeymap(serverTextField);
   9.190 +        VcsUtilities.removeEnterFromKeymap(repositoryTextField);
   9.191 +        VcsUtilities.removeEnterFromKeymap(rootDirTextField);
   9.192 +//MK        VcsUtilities.removeEnterFromKeymap(moduleTextField);
   9.193 +//MK        VcsUtilities.removeEnterFromKeymap(relMountTextField);
   9.194 +        VcsUtilities.removeEnterFromKeymap(cvsExeTextField);
   9.195 +        VcsUtilities.removeEnterFromKeymap(cygwinTextField);
   9.196 +//        VcsUtilities.removeEnterFromKeymap(refreshTextField);
   9.197      }
   9.198  
   9.199      private void updateEnabledComponents () {
   9.200 @@ -1278,6 +1292,7 @@
   9.201          return true;  // is not pserver, -> always ok.
   9.202      }    
   9.203      
   9.204 +    /* NOT USED ANY MORE
   9.205      private void doSelectModule() {
   9.206          VcsConfigVariable var = (VcsConfigVariable) fileSystem.getVariablesByName().get ("MODULE_NAME");
   9.207          if (var == null) return;
   9.208 @@ -1307,7 +1322,7 @@
   9.209  //MK                    father.unSetChanges();
   9.210                      //fileSystem.setCvsModuleName(selection);
   9.211                      //rootDirChanged(false);
   9.212 -                  String list = MiscStuff.arrayToQuotedString(modulesSelected, fileSystem.isUseUnixShell());
   9.213 +                  String list = VcsUtilities.arrayToQuotedString(modulesSelected, fileSystem.isUseUnixShell());
   9.214                    doCheckoutModule(list);
   9.215                      // Do checkout here?? 
   9.216                  } else { // in case of ignore
   9.217 @@ -1316,30 +1331,43 @@
   9.218              }
   9.219          }.start();    
   9.220     }     
   9.221 -
   9.222 +    */
   9.223     
   9.224     private void doCheckoutModule(String moduleList) {
   9.225 -        VcsConfigVariable var = (VcsConfigVariable) fileSystem.getVariablesByName().get ("MODULE_NAME");
   9.226 -        if (var == null) return;
   9.227 -        var.setValue(moduleList);
   9.228 -        UserCommand coModule = fileSystem.getCommand("CHECKOUT_MODULES");
   9.229 -        OutputContainer container = new OutputContainer(g("MSG_VariableSelector"));
   9.230 -        final ExecuteCommand es = new ExecuteCommand(fileSystem, coModule, 
   9.231 -                                                     fileSystem.getVariablesAsHashtable());
   9.232 -        es.setErrorNoRegexListener(container);
   9.233 -        es.setOutputNoRegexListener(container);
   9.234 -        es.setErrorContainer(container);
   9.235 +        //VcsConfigVariable var = (VcsConfigVariable) fileSystem.getVariablesByName().get ("MODULE_NAME");
   9.236 +        //if (var == null) return;
   9.237 +        //var.setValue(moduleList);
   9.238 +        VcsCommand coModule = fileSystem.getCommand("CHECKOUT_MODULES");
   9.239 +        //OutputContainer container = new OutputContainer(g("MSG_VariableSelector"));
   9.240 +        //final ExecuteCommand es = new ExecuteCommand(fileSystem, coModule, 
   9.241 +        //                                             fileSystem.getVariablesAsHashtable());
   9.242 +        final VcsCommandExecutor vce = fileSystem.getVcsFactory().getCommandExecutor(coModule, fileSystem.getVariablesAsHashtable());
   9.243 +        //es.setErrorNoRegexListener(container);
   9.244 +        //es.setOutputNoRegexListener(container);
   9.245 +        //es.setErrorContainer(container);
   9.246          //javax.swing.SwingUtilities.invokeLater(new Runnable() {
   9.247          //public void run() {
   9.248 +        final org.netbeans.modules.vcscore.commands.CommandsPool cPool = fileSystem.getCommandsPool();
   9.249 +        cPool.addCommandListener(new CommandListener() {
   9.250 +            public void commandStarted(VcsCommandExecutor vce) {
   9.251 +            }
   9.252 +            public void commandDone(VcsCommandExecutor vce) {
   9.253 +                org.openide.TopManager.getDefault ().getRepository ().addFileSystem (fileSystem);
   9.254 +                cPool.removeCommandListener(this);
   9.255 +            }
   9.256 +        });
   9.257 +        cPool.startExecutor(vce);
   9.258 +        /*
   9.259          new Thread ("CVS-ModuleCheckout") {
   9.260              public void run() {
   9.261 +                cPool.startExecutor(vce);
   9.262                  es.start();
   9.263  /*                javax.swing.SwingUtilities.invokeLater(new Runnable () {
   9.264                      public void run () {
   9.265                          TopManager.getDefault ().notify (new NotifyDescriptor.Message(org.openide.util.NbBundle.getBundle(CvsCustomizer.class).getString("CvsCustomizer.CheckoutRunning")));
   9.266                      }
   9.267                  });                
   9.268 -*/                
   9.269 +*               
   9.270                  try {
   9.271                      es.join();
   9.272                      org.openide.TopManager.getDefault ().getRepository ().addFileSystem (fileSystem);
   9.273 @@ -1348,6 +1376,7 @@
   9.274                  }
   9.275              }
   9.276          }.start();    
   9.277 +        */
   9.278     }    
   9.279  
   9.280     private void fillTextFields() {
    10.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/CvsFileSystem.java	Mon Jan 22 13:24:46 2001 +0000
    10.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/CvsFileSystem.java	Mon Jan 22 20:58:06 2001 +0000
    10.3 @@ -12,6 +12,7 @@
    10.4   */
    10.5  
    10.6  package org.netbeans.modules.vcs.cmdline;
    10.7 +
    10.8  import java.awt.*;
    10.9  import java.io.*;
   10.10  import java.util.*;
   10.11 @@ -19,11 +20,7 @@
   10.12  import java.text.*;
   10.13  import javax.swing.*;
   10.14  
   10.15 -import org.openide.util.actions.*;
   10.16 -import org.openide.util.NbBundle;
   10.17  import org.openide.*;
   10.18 -import org.netbeans.modules.vcs.*;
   10.19 -import org.netbeans.modules.vcs.util.*;
   10.20  import org.openide.filesystems.FileObject;
   10.21  import org.openide.filesystems.FileSystem;
   10.22  import org.openide.filesystems.FileSystem.Status;
   10.23 @@ -31,6 +28,15 @@
   10.24  import org.openide.filesystems.FileStateInvalidException;
   10.25  import org.openide.filesystems.AbstractFileSystem;
   10.26  import org.openide.filesystems.DefaultAttributes;
   10.27 +import org.openide.nodes.Children;
   10.28 +import org.openide.util.actions.*;
   10.29 +import org.openide.util.NbBundle;
   10.30 +
   10.31 +import org.netbeans.modules.vcscore.*;
   10.32 +import org.netbeans.modules.vcscore.commands.VcsCommand;
   10.33 +import org.netbeans.modules.vcscore.commands.VcsCommandNode;
   10.34 +import org.netbeans.modules.vcscore.cmdline.UserCommand;
   10.35 +import org.netbeans.modules.vcscore.util.*;
   10.36  
   10.37  /** CVS filesystem.
   10.38   * 
   10.39 @@ -42,6 +48,7 @@
   10.40      
   10.41      private transient VcsFactory cvsFactory = null;
   10.42  
   10.43 +    /*
   10.44      public VcsFactory getVcsFactory () {
   10.45          if (cvsFactory == null) {
   10.46              synchronized (this) {
   10.47 @@ -50,6 +57,7 @@
   10.48          }
   10.49          return cvsFactory;
   10.50      }
   10.51 +     */
   10.52  
   10.53      public final static String CVS_SERVER_LOCAL = "local"; // NOI18N
   10.54      public final static String CVS_SERVER_SERVER = "server"; // NOI18N
   10.55 @@ -83,6 +91,9 @@
   10.56      private String cvsExePath = (last_cvsExePath == null) ? null : new String(last_cvsExePath);
   10.57      private String cygwinPath = (last_cygwinPath == null) ? null : new String(last_cygwinPath);
   10.58      //private boolean useUnixShell = last_useUnixShell;
   10.59 +
   10.60 +    private static final String CACHE_FILE_FOLDER = "CVS";
   10.61 +    private static final String CACHE_FILE_NAME = "netbeans.cache";
   10.62      
   10.63      private boolean executePreCommit = true;
   10.64  
   10.65 @@ -97,6 +108,7 @@
   10.66      public String getCygwinPath () { return cygwinPath; }
   10.67      //public boolean isUseUnixShell () { return useUnixShell; }
   10.68  
   10.69 +    /*
   10.70      public void setExecutePreCommit(boolean executePreCommit) {
   10.71          this.executePreCommit = executePreCommit;
   10.72          UserCommand cmd = getCommand("COMMIT");
   10.73 @@ -250,15 +262,15 @@
   10.74      }
   10.75  
   10.76      private void addKnownStatuses() {
   10.77 -        possibleFileStatusesTable.put("Up-to-date", g("CTL_Status_UpToDate"));
   10.78 -        possibleFileStatusesTable.put("Locally Modified", g("CTL_Status_LocallyModified"));
   10.79 -        possibleFileStatusesTable.put("Locally Added", g("CTL_Status_LocallyAdded"));
   10.80 -        possibleFileStatusesTable.put("Locally Removed", g("CTL_Status_LocallyRemoved"));
   10.81 -        possibleFileStatusesTable.put("Needs Checkout", g("CTL_Status_NeedsCheckout"));
   10.82 -        possibleFileStatusesTable.put("Needs Patch", g("CTL_Status_NeedsPatch"));
   10.83 -        possibleFileStatusesTable.put("Needs Merge", g("CTL_Status_NeedsMerge"));
   10.84 -        possibleFileStatusesTable.put("File had conflict on merge", g("CTL_Status_FileHadConflictOnMerge"));
   10.85 -        possibleFileStatusesTable.put("Unknown", g("CTL_Status_Unknown"));
   10.86 +        possibleFileStatusesMap.put("Up-to-date", cvsg("CTL_Status_UpToDate"));
   10.87 +        possibleFileStatusesMap.put("Locally Modified", cvsg("CTL_Status_LocallyModified"));
   10.88 +        possibleFileStatusesMap.put("Locally Added", cvsg("CTL_Status_LocallyAdded"));
   10.89 +        possibleFileStatusesMap.put("Locally Removed", cvsg("CTL_Status_LocallyRemoved"));
   10.90 +        possibleFileStatusesMap.put("Needs Checkout", cvsg("CTL_Status_NeedsCheckout"));
   10.91 +        possibleFileStatusesMap.put("Needs Patch", cvsg("CTL_Status_NeedsPatch"));
   10.92 +        possibleFileStatusesMap.put("Needs Merge", cvsg("CTL_Status_NeedsMerge"));
   10.93 +        possibleFileStatusesMap.put("File had conflict on merge", cvsg("CTL_Status_FileHadConflictOnMerge"));
   10.94 +        possibleFileStatusesMap.put("Unknown", cvsg("CTL_Status_Unknown"));
   10.95      }
   10.96  
   10.97      private void setConfiguration () {
   10.98 @@ -272,9 +284,10 @@
   10.99          } else osName = "_UNIX"; // NOI18N
  10.100          D.deb("OS = "+os+" => osName = "+osName); // NOI18N
  10.101  
  10.102 +        vars.add (new VcsConfigVariable ("FS_DISPLAY_NAME", "", bu.getString ("VAR_FS_DISPLAY_NAME"), false, false, false, "")); // NOI18N
  10.103          vars.add (new VcsConfigVariable ("MODULE", "", "", false, false, false, "")); // NOI18N
  10.104          vars.add (new VcsConfigVariable ("MODULE_S", "", "", false, false, false, "")); // NOI18N
  10.105 -        vars.add (new VcsConfigVariable ("MODULE_NAME", "", "", false, false, false, bu.getString ("VAR_MODULE_SELECT"+osName))); // NOI18N
  10.106 +        //vars.add (new VcsConfigVariable ("MODULE_NAME", "", "", false, false, false, bu.getString ("VAR_MODULE_SELECT"+osName))); // NOI18N
  10.107          //vars.add (new VcsConfigVariable ("CP", "", bu.getString ("VAR_CP"+osName), false, false, false));
  10.108          vars.add (new VcsConfigVariable ("PS", "", ""+java.io.File.separator, false, false, false, "")); // NOI18N
  10.109          //vars.add (new VcsConfigVariable ("CPS", "", "${classpath.separator}", false, false, false)); // NOI18N
  10.110 @@ -292,7 +305,11 @@
  10.111          vars.add (new VcsConfigVariable ("WORKDIR", "", bu.getString ("VAR_WORKDIR"+osName), false, false, false, ""));
  10.112          vars.add (new VcsConfigVariable ("SERVERTYPE", "", "local", false, false, false, "")); // NOI18N
  10.113          vars.add (new VcsConfigVariable ("SHOWLOCALFILES", "", "true", false, false, false, "")); // NOI18N
  10.114 -        vars.add (new VcsConfigVariable ("WRAPPER", "", "org.netbeans.modules.vcs.cmdline.CvsList", false, false, false, "")); // NOI18N
  10.115 +        vars.add (new VcsConfigVariable ("WRAPPER", "", "org.netbeans.modules.vcs.cmdline.list.CvsListCommand.class", false, false, false, "")); // NOI18N
  10.116 +        vars.add (new VcsConfigVariable ("NOT_MODIFIABLE_FILE_STATUSES", "", bu.getString ("VAR_NOT_MODIFIABLE_FILE_STATUSES"), false, false, false, ""));
  10.117 +        vars.add (new VcsConfigVariable ("QUOTE", "", bu.getString ("VAR_QUOTE"+osName), false, false, false, ""));
  10.118 +        
  10.119 +        /*
  10.120          vars.add (new VcsConfigVariable ("CHECKOUT_CMD", "", bu.getString ("VAR_CHECKOUT_CMD"+osName), false, false, false, ""));
  10.121          vars.add (new VcsConfigVariable ("DIFF_CMD", "", bu.getString ("VAR_DIFF_CMD"+osName), false, false, false, ""));
  10.122          vars.add (new VcsConfigVariable ("DIFF_USR_CMD", "", bu.getString ("VAR_DIFF_USR_CMD"+osName), false, false, false, ""));
  10.123 @@ -301,6 +318,7 @@
  10.124          vars.add (new VcsConfigVariable ("ADD_TAG_CMD", "", bu.getString ("VAR_ADD_TAG_CMD"+osName), false, false, false, ""));
  10.125          vars.add (new VcsConfigVariable ("CHECKOUT_MODULES_S_CMD", "", bu.getString ("VAR_CHECKOUT_MODULES_S_CMD"+osName), false, false, false, ""));
  10.126          vars.add (new VcsConfigVariable ("CHECKOUT_MODULES_C_CMD", "", bu.getString ("VAR_CHECKOUT_MODULES_C_CMD"+osName), false, false, false, ""));
  10.127 +         */
  10.128          if (last_cvsExePath != null) {
  10.129              vars.add (new VcsConfigVariable ("CVS_EXE", "", last_cvsExePath, false, false, false, ""));
  10.130              cvsExePath = new String(last_cvsExePath);
  10.131 @@ -340,7 +358,29 @@
  10.132          ResourceBundle bu = NbBundle.getBundle ("org.netbeans.modules.vcs.cmdline.CommandLines"); // NOI18N
  10.133          //VcsConfigVariable var = (VcsConfigVariable) variablesByName.get ("CP"); // NOI18N
  10.134          //var.setValue (bu.getString ("VAR_CP"+osName));
  10.135 -        VcsConfigVariable var = (VcsConfigVariable) variablesByName.get ("MODPATH"); // NOI18N
  10.136 +        VcsConfigVariable var = (VcsConfigVariable) variablesByName.get ("FS_DISPLAY_NAME"); // NOI18N
  10.137 +        if (var == null) {
  10.138 +            var = new VcsConfigVariable("FS_DISPLAY_NAME", "", "", false, false, false, null);
  10.139 +            getVariables().add(var);
  10.140 +            variablesByName.put("FS_DISPLAY_NAME", var);
  10.141 +        }
  10.142 +        var.setValue (bu.getString ("VAR_FS_DISPLAY_NAME")); // NOI18N
  10.143 +        var = (VcsConfigVariable) variablesByName.get ("NOT_MODIFIABLE_FILE_STATUSES"); // NOI18N
  10.144 +        if (var == null) {
  10.145 +            var = new VcsConfigVariable("NOT_MODIFIABLE_FILE_STATUSES", "", "", false, false, false, null);
  10.146 +            getVariables().add(var);
  10.147 +            variablesByName.put("NOT_MODIFIABLE_FILE_STATUSES", var);
  10.148 +        }
  10.149 +        var.setValue (bu.getString ("VAR_NOT_MODIFIABLE_FILE_STATUSES")); // NOI18N
  10.150 +        var = (VcsConfigVariable) variablesByName.get ("QUOTE"); // NOI18N
  10.151 +        if (var == null) {
  10.152 +            var = new VcsConfigVariable("QUOTE", "", "", false, false, false, null);
  10.153 +            getVariables().add(var);
  10.154 +            variablesByName.put("QUOTE"+osName, var);
  10.155 +        }
  10.156 +        var.setValue (bu.getString ("VAR_QUOTE"+osName)); // NOI18N
  10.157 +
  10.158 +        var = (VcsConfigVariable) variablesByName.get ("MODPATH"); // NOI18N
  10.159          D.deb("var = "+var);
  10.160          var.setValue (bu.getString ("VAR_MODPATH"+osName));
  10.161          var = (VcsConfigVariable) variablesByName.get ("RUN"); // NOI18N
  10.162 @@ -350,6 +390,7 @@
  10.163          var = (VcsConfigVariable) variablesByName.get ("WORKDIR"); // NOI18N
  10.164          var.setValue (bu.getString ("VAR_WORKDIR"+osName));
  10.165  
  10.166 +        /*
  10.167          var = (VcsConfigVariable) variablesByName.get ("CHECKOUT_CMD"); // NOI18N
  10.168          var.setValue (bu.getString ("VAR_CHECKOUT_CMD"+osName));
  10.169          var = (VcsConfigVariable) variablesByName.get ("DIFF_CMD"); // NOI18N
  10.170 @@ -386,6 +427,7 @@
  10.171              variablesByName.put("CHECKOUT_MODULES_C_CMD", var);
  10.172          }
  10.173          var.setValue(bu.getString ("VAR_CHECKOUT_MODULES_C_CMD"+osName));
  10.174 +         */
  10.175  
  10.176          var = (VcsConfigVariable) variablesByName.get ("PS"); // NOI18N
  10.177          if (isUseUnixShell())
  10.178 @@ -396,762 +438,825 @@
  10.179          if (isUseUnixShell())
  10.180              var.setValue ("cd"); // NOI18N
  10.181          else {
  10.182 -            if (osName.equals("_WIN")) // NOI18N
  10.183 +            if (org.openide.util.Utilities.isWindows()) {
  10.184                  var.setValue ("cd /D"); // NOI18N
  10.185 -            else
  10.186 +            } else {
  10.187                  var.setValue ("cd"); // NOI18N
  10.188 +            }
  10.189          }
  10.190  
  10.191          UserCommand cmd;
  10.192 -        Vector commands = new Vector ();
  10.193 +        //Vector commands = new Vector ();
  10.194          //String moduleName = " $[? MODULE_NAME] [${MODULE_NAME}] [.]"; // NOI18N
  10.195 +        Children.Array children = new Children.Array();
  10.196 +        VcsCommandNode cvsCommands = new VcsCommandNode(children, null); // the root (container) of commands, does not represent any actual command.
  10.197  
  10.198 +        cmd = new UserCommand ();
  10.199 +        cmd.setDisplayName(cvsg("LAB_CVSFileSystemName"));
  10.200 +        cmd.setName("CVS_MAIN_MENU");
  10.201 +        Children.Array mainChildren = new Children.Array();
  10.202 +        VcsCommandNode mainCommands = new VcsCommandNode(mainChildren, cmd);
  10.203 +        children.add(new VcsCommandNode[] { mainCommands });
  10.204 +        
  10.205          D.deb("UserCommand.");
  10.206          cmd= new UserCommand ();
  10.207          D.deb("cmd = "+cmd);
  10.208          cmd.setName ("LIST"); // NOI18N
  10.209          D.deb("cmd = "+cmd);
  10.210          try {
  10.211 -            D.deb("refresh label = "+g("CMD_Refresh"));
  10.212 +            D.deb("refresh label = "+cvsg("CMD_Refresh"));
  10.213          } catch(Exception e) {
  10.214              D.deb("Exception: "+e);
  10.215              e.printStackTrace();
  10.216          }
  10.217 -        cmd.setLabel (g("CMD_Refresh")); // NOI18N
  10.218 +        cmd.setDisplayName (cvsg("CMD_Refresh")); // NOI18N
  10.219          D.deb("cmd = "+cmd);
  10.220 -        cmd.setExec (bu.getString ("EXEC_LIST"+osName));
  10.221 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_LIST"+osName));
  10.222          D.deb("cmd = "+cmd);
  10.223 -        cmd.setInput (""); // NOI18N
  10.224 -        cmd.setTimeout (0);
  10.225 -        cmd.setDataRegex (bu.getString ("REGEX_LIST"));
  10.226 -        cmd.setErrorRegex ("(Error.*)"); // NOI18N
  10.227 -        cmd.setStatus (1);
  10.228 -        cmd.setLocker (-1);
  10.229 -        cmd.setAttr (-1);
  10.230 -        cmd.setDate (-1);
  10.231 -        cmd.setTime (-1);
  10.232 -        cmd.setSize (-1);
  10.233 -        cmd.setFileName (0);
  10.234 -        commands.add (cmd);
  10.235 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, bu.getString ("REGEX_LIST"));
  10.236 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "^(.*$)"); // NOI18N
  10.237 +        cmd.setProperty(UserCommand.PROPERTY_LIST_INDEX_FILE_NAME, new Integer(0));
  10.238 +        cmd.setProperty(UserCommand.PROPERTY_LIST_INDEX_STATUS, new Integer(1));
  10.239 +        cmd.setProperty(UserCommand.PROPERTY_LIST_INDEX_REVISION, new Integer(2));
  10.240 +        cmd.setProperty(UserCommand.PROPERTY_LIST_INDEX_TIME, new Integer(3));
  10.241 +        cmd.setProperty(UserCommand.PROPERTY_LIST_INDEX_DATE, new Integer(4));
  10.242 +        cmd.setProperty(UserCommand.PROPERTY_LIST_INDEX_STICKY, new Integer(5));
  10.243 +        //cmd.setLocker (-1);
  10.244 +        //cmd.setAttr (-1);
  10.245 +        //cmd.setDate (-1);
  10.246 +        //cmd.setTime (-1);
  10.247 +        //cmd.setSize (-1);
  10.248 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.249  
  10.250          D.deb("cmd 1 = "+cmd);
  10.251  
  10.252          cmd= new UserCommand ();
  10.253          cmd.setName ("LIST_SUB"); // NOI18N
  10.254 -        cmd.setLabel (g("CMD_RefreshRecursively")); // NOI18N
  10.255 -        cmd.setExec (bu.getString ("EXEC_LIST_SUB"+osName));
  10.256 -        cmd.setInput (""); // NOI18N
  10.257 -        cmd.setTimeout (0);
  10.258 -        cmd.setDataRegex (bu.getString ("REGEX_LIST_SUB"));
  10.259 -        cmd.setErrorRegex ("(Error.*)"); // NOI18N
  10.260 -        cmd.setStatus (1);
  10.261 -        cmd.setLocker (-1);
  10.262 -        cmd.setAttr (-1);
  10.263 -        cmd.setDate (-1);
  10.264 -        cmd.setTime (-1);
  10.265 -        cmd.setSize (-1);
  10.266 -        cmd.setFileName (0);
  10.267 -        commands.add (cmd);
  10.268 +        cmd.setDisplayName (cvsg("CMD_RefreshRecursively")); // NOI18N
  10.269 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_LIST_SUB"+osName));
  10.270 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, bu.getString ("REGEX_LIST_SUB"));
  10.271 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "^(.*$)"); // NOI18N
  10.272 +        cmd.setProperty(UserCommand.PROPERTY_LIST_INDEX_FILE_NAME, new Integer(0));
  10.273 +        cmd.setProperty(UserCommand.PROPERTY_LIST_INDEX_STATUS, new Integer(1));
  10.274 +        cmd.setProperty(UserCommand.PROPERTY_LIST_INDEX_REVISION, new Integer(2));
  10.275 +        cmd.setProperty(UserCommand.PROPERTY_LIST_INDEX_TIME, new Integer(3));
  10.276 +        cmd.setProperty(UserCommand.PROPERTY_LIST_INDEX_DATE, new Integer(4));
  10.277 +        cmd.setProperty(UserCommand.PROPERTY_LIST_INDEX_STICKY, new Integer(5));
  10.278 +        //cmd.setLocker (-1);
  10.279 +        //cmd.setAttr (-1);
  10.280 +        //cmd.setDate (-1);
  10.281 +        //cmd.setTime (-1);
  10.282 +        //cmd.setSize (-1);
  10.283 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.284  
  10.285          D.deb("cmd 2 = "+cmd);
  10.286  
  10.287 +        // SEPARATOR
  10.288 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, null) });
  10.289 +
  10.290 +        cmd= new UserCommand ();
  10.291 +        cmd.setName ("INIT"); // NOI18N
  10.292 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Init_AN"));
  10.293 +        cmd.setDisplayName (cvsg("CMD_Init")); // NOI18N
  10.294 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_INIT"));
  10.295 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.296 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.297 +        cmd.setProperty(VcsCommand.PROPERTY_ON_FILE, new Boolean(false));
  10.298 +        cmd.setProperty(VcsCommand.PROPERTY_ON_DIR, new Boolean(false));
  10.299 +        cmd.setProperty(VcsCommand.PROPERTY_ON_ROOT, new Boolean(true));
  10.300 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.301 +
  10.302 +        cmd= new UserCommand ();
  10.303 +        cmd.setName ("CHECKOUT_MODULE"); // NOI18N
  10.304 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_CheckOut_AN"));
  10.305 +        cmd.setDisplayName (cvsg("CMD_CheckOutModule")/*+moduleName*/); // NOI18N
  10.306 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_CHECKOUT_MODULE"));
  10.307 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.308 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.309 +        cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
  10.310 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.311 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_RECURSIVELY_PATTERN_MATCHED, "checkout");
  10.312 +        //cmd.addPreCommand(preModule);
  10.313 +        cmd.setProperty(VcsCommand.PROPERTY_ON_FILE, new Boolean(false));
  10.314 +        cmd.setProperty(VcsCommand.PROPERTY_ON_DIR, new Boolean(false));
  10.315 +        cmd.setProperty(VcsCommand.PROPERTY_ON_ROOT, new Boolean(true));
  10.316 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.317 +
  10.318 +        cmd= new UserCommand ();
  10.319 +        cmd.setName ("EXPORT_MODULE_DATE"); // NOI18N
  10.320 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Export_AN"));
  10.321 +        cmd.setDisplayName (cvsg("CMD_ExportModuleByDate")); // NOI18N
  10.322 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_EXPORT_MODULE_DATE"));
  10.323 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.324 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.325 +        cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
  10.326 +        cmd.setProperty(VcsCommand.PROPERTY_ON_FILE, new Boolean(false));
  10.327 +        cmd.setProperty(VcsCommand.PROPERTY_ON_DIR, new Boolean(false));
  10.328 +        cmd.setProperty(VcsCommand.PROPERTY_ON_ROOT, new Boolean(true));
  10.329 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.330 +
  10.331 +        cmd= new UserCommand ();
  10.332 +        cmd.setName ("EXPORT_MODULE_REVISION"); // NOI18N
  10.333 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Export_AN"));
  10.334 +        cmd.setDisplayName (cvsg("CMD_ExportModuleByRevision")); // NOI18N
  10.335 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_EXPORT_MODULE_REVISION"));
  10.336 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.337 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.338 +        cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
  10.339 +        cmd.setProperty(VcsCommand.PROPERTY_ON_FILE, new Boolean(false));
  10.340 +        cmd.setProperty(VcsCommand.PROPERTY_ON_DIR, new Boolean(false));
  10.341 +        cmd.setProperty(VcsCommand.PROPERTY_ON_ROOT, new Boolean(true));
  10.342 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.343 +
  10.344 +        // SEPARATOR
  10.345 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, null) });
  10.346 +
  10.347 +        cmd= new UserCommand ();
  10.348 +        cmd.setName ("COMMIT"); // NOI18N
  10.349 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Commit_AN"));
  10.350 +        cmd.setDisplayName (cvsg("CMD_Commit")); // NOI18N
  10.351 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_COMMIT"));
  10.352 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.353 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.354 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.355 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_RECURSIVELY_PATTERN_UNMATCHED, " -l ");
  10.356 +        cmd.setProperty(UserCommand.PROPERTY_CHECK_FOR_MODIFICATIONS, new Boolean(true));
  10.357 +        cmd.setProperty(VcsCommand.PROPERTY_CHANGING_NUM_REVISIONS, new Boolean(true));
  10.358 +        cmd.setProperty(VcsCommand.PROPERTY_RUN_ON_MULTIPLE_FILES, new Boolean(true));
  10.359 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.360 +        //commands.add (cmd);
  10.361 +
  10.362 +        cmd= new UserCommand ();
  10.363 +        cmd.setName ("COMMIT_TEMPLATE_GETTER"); // NOI18N
  10.364 +        cmd.setDisplayName (null); // NOI18N
  10.365 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_COMMIT_TEMPLATE_GETTER"+osName));
  10.366 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, bu.getString ("REGEX_COMMIT_TEMPLATE_GETTER")); // NOI18N
  10.367 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.368 +        cmd.setProperty(VcsCommand.PROPERTY_IGNORE_FAIL, new Boolean(true));
  10.369 +        cmd.setProperty(VcsCommand.PROPERTY_RUN_ON_MULTIPLE_FILES, new Boolean(true));
  10.370 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.371 +
  10.372 +        cmd= new UserCommand ();
  10.373 +        cmd.setName ("UPDATE"); // NOI18N
  10.374 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Update_AN"));
  10.375 +        cmd.setDisplayName (cvsg("CMD_Update")); // NOI18N
  10.376 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_UPDATE"));
  10.377 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.378 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.379 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.380 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_RECURSIVELY_PATTERN_UNMATCHED, " -l ");
  10.381 +        //cmd.setRefreshParent(false);
  10.382 +        cmd.setProperty(UserCommand.PROPERTY_CHECK_FOR_MODIFICATIONS, new Boolean(true));
  10.383 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.384 +
  10.385 +        cmd= new UserCommand ();
  10.386 +        cmd.setName ("ADD"); // NOI18N
  10.387 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Add_AN"));
  10.388 +        cmd.setDisplayName (cvsg("CMD_Add")); // NOI18N
  10.389 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_ADD"));
  10.390 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.391 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.392 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.393 +        cmd.setProperty(VcsCommand.PROPERTY_ON_DIR, new Boolean(false));
  10.394 +        cmd.setProperty(VcsCommand.PROPERTY_ON_ROOT, new Boolean(false));
  10.395 +        cmd.setProperty(VcsCommand.PROPERTY_CONCURRENT_EXECUTION, new Integer(VcsCommand.EXEC_SERIAL_WITH_PARENT));
  10.396 +        cmd.setProperty(VcsCommand.PROPERTY_DISABLED_ON_STATUS, bu.getString("DISABLED_ON_STATUS_ADD"));
  10.397 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.398 +
  10.399 +        cmd= new UserCommand ();
  10.400 +        cmd.setName ("ADD_DIR"); // NOI18N
  10.401 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Add_AN"));
  10.402 +        cmd.setDisplayName (cvsg("CMD_Add")); // NOI18N
  10.403 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_ADD_DIR"));
  10.404 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.405 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.406 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_PARENT_FOLDER, new Boolean(true));
  10.407 +        cmd.setProperty(VcsCommand.PROPERTY_ON_FILE, new Boolean(false));
  10.408 +        cmd.setProperty(VcsCommand.PROPERTY_CONCURRENT_EXECUTION, new Integer(VcsCommand.EXEC_SERIAL_WITH_PARENT | VcsCommand.EXEC_SERIAL_OF_COMMAND));
  10.409 +        cmd.setProperty(VcsCommand.PROPERTY_DISABLED_ON_STATUS, bu.getString("DISABLED_ON_STATUS_ADD_DIR"));
  10.410 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.411 +
  10.412 +        cmd= new UserCommand ();
  10.413 +        cmd.setName ("REMOVE"); // NOI18N
  10.414 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Remove_AN"));
  10.415 +        cmd.setDisplayName (cvsg("CMD_Remove")); // NOI18N
  10.416 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_REMOVE"));
  10.417 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.418 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.419 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.420 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_RECURSIVELY_PATTERN_UNMATCHED, " -l ");
  10.421 +        cmd.setProperty(VcsCommand.PROPERTY_CONFIRMATION_MSG, bu.getString("VAR_REMOVE_MSG"));
  10.422 +        cmd.setProperty(VcsCommand.PROPERTY_PROCESS_ALL_FILES, new Boolean(true)); // I want to remove all files including *.class
  10.423 +        cmd.setProperty(VcsCommand.PROPERTY_ON_DIR, new Boolean(false));
  10.424 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.425 +
  10.426 +        // SEPARATOR
  10.427 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, null) });
  10.428 +
  10.429 +        cmd= new UserCommand ();
  10.430 +        cmd.setName ("IMPORT"); // NOI18N
  10.431 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Import_AN"));
  10.432 +        cmd.setDisplayName (cvsg("CMD_Import")); // NOI18N
  10.433 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_IMPORT"+osName));
  10.434 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.435 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.436 +        cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
  10.437 +        cmd.setProperty(VcsCommand.PROPERTY_ON_FILE, new Boolean(false));
  10.438 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.439 +
  10.440 +        cmd= new UserCommand ();
  10.441 +        cmd.setName ("IMPORT_AND_CHECKOUT"); // NOI18N
  10.442 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_ImportAndCheckout_AN"));
  10.443 +        cmd.setDisplayName (cvsg("CMD_ImportAndCheckout")); // NOI18N
  10.444 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_IMPORT_AND_CHECKOUT"+osName));
  10.445 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.446 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.447 +        cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
  10.448 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_PARENT_FOLDER, new Boolean(true));
  10.449 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_RECURSIVELY_PATTERN_MATCHED, "import");
  10.450 +        cmd.setProperty(UserCommand.PROPERTY_CHECK_FOR_MODIFICATIONS, new Boolean(true));
  10.451 +        //cmd.setRefreshParent(false);
  10.452 +        cmd.setProperty(VcsCommand.PROPERTY_ON_FILE, new Boolean(false));
  10.453 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.454 +
  10.455          cmd= new UserCommand ();
  10.456          cmd.setName ("CHECKOUT"); // NOI18N
  10.457 -        cmd.setAdvancedName(g("CMD_CheckOut_AN"));
  10.458 -        cmd.setLabel (g("CMD_CheckOut")); // NOI18N
  10.459 -        cmd.setExec (bu.getString ("EXEC_CHECKOUT"+osName));
  10.460 -        cmd.setInput (""); // NOI18N
  10.461 -        cmd.setTimeout (0);
  10.462 -        cmd.setDataRegex ("(.*$)"); // NOI18N
  10.463 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
  10.464 -        cmd.setDisplayOutput (true);
  10.465 -        cmd.setDoRefresh(true);
  10.466 -        cmd.setRefreshRecursivelyPattern(" -R ");
  10.467 -        cmd.setCheckForModifications(true);
  10.468 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_CheckOut_AN"));
  10.469 +        cmd.setDisplayName (cvsg("CMD_CheckOut")); // NOI18N
  10.470 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_CHECKOUT"));
  10.471 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.472 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.473 +        cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
  10.474 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_PARENT_FOLDER, new Boolean(true));
  10.475 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_RECURSIVELY_PATTERN_UNMATCHED, " -l ");
  10.476 +        cmd.setProperty(UserCommand.PROPERTY_CHECK_FOR_MODIFICATIONS, new Boolean(true));
  10.477          //cmd.setRefreshParent(false);
  10.478 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.479 +
  10.480 +        cmd= new UserCommand ();
  10.481 +        cmd.setName ("EXPORT_DATE"); // NOI18N
  10.482 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Export_AN"));
  10.483 +        cmd.setDisplayName (cvsg("CMD_ExportByDate")); // NOI18N
  10.484 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_EXPORT_DATE"));
  10.485 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.486 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.487 +        //cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
  10.488 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.489 +
  10.490 +        cmd= new UserCommand ();
  10.491 +        cmd.setName ("EXPORT_REVISION"); // NOI18N
  10.492 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Export_AN"));
  10.493 +        cmd.setDisplayName (cvsg("CMD_ExportByRevision")); // NOI18N
  10.494 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_EXPORT_REVISION"));
  10.495 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.496 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.497 +        //cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
  10.498 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.499 +
  10.500 +        // SEPARATOR
  10.501 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, null) });
  10.502 +        
  10.503 +        /*
  10.504 +        cmd= new UserCommand ();
  10.505 +        cmd.setName ("LOGIN"); // NOI18N
  10.506 +        cmd.setDisplayName (cvsg("CMD_Login")); // NOI18N
  10.507 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_LOGIN"));
  10.508 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.509 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.510          commands.add (cmd);
  10.511  
  10.512 -        /* MK - adding precomand - selector */
  10.513 +        D.deb("cmd 6 = "+cmd);
  10.514 +         */
  10.515 +
  10.516 +        cmd= new UserCommand ();
  10.517 +        cmd.setName ("LOCK"); // NOI18N
  10.518 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Lock_AN"));
  10.519 +        cmd.setDisplayName (cvsg("CMD_Lock")); // NOI18N
  10.520 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_LOCK"));
  10.521 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.522 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.523 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.524 +
  10.525 +        cmd= new UserCommand ();
  10.526 +        cmd.setName ("UNLOCK1"); // NOI18N
  10.527 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Unlock_AN"));
  10.528 +        cmd.setDisplayName (cvsg("CMD_Unlock")); // NOI18N
  10.529 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_UNLOCK"));
  10.530 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.531 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.532 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.533 +
  10.534 +        // SEPARATOR
  10.535 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, null) });
  10.536 +
  10.537 +        Children.Array editingChildren = new Children.Array();
  10.538 +        cmd= new UserCommand ();
  10.539 +        cmd.setName("SUBMENU_EDITING");
  10.540 +        cmd.setDisplayName(cvsg("SubmenuEditing"));
  10.541 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(editingChildren, cmd) });
  10.542 +        
  10.543 +        cmd= new UserCommand ();
  10.544 +        cmd.setName ("EDIT"); // NOI18N
  10.545 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Edit_AN"));
  10.546 +        cmd.setDisplayName (cvsg("CMD_Edit")); // NOI18N
  10.547 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_EDIT"));
  10.548 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.549 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.550 +        editingChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.551 +
  10.552 +        cmd= new UserCommand ();
  10.553 +        cmd.setName ("UNEDIT"); // NOI18N
  10.554 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Unedit_AN"));
  10.555 +        cmd.setDisplayName (cvsg("CMD_Unedit")); // NOI18N
  10.556 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_UNEDIT"));
  10.557 +        cmd.setProperty(UserCommand.PROPERTY_INPUT, "y\n"); // NOI18N
  10.558 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.559 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.560 +        cmd.setProperty(VcsCommand.PROPERTY_CONFIRMATION_MSG, bu.getString("VAR_UNEDIT_MSG"));
  10.561 +        cmd.setProperty(UserCommand.PROPERTY_CHECK_FOR_MODIFICATIONS, new Boolean(true));
  10.562 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.563 +        editingChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.564 +
  10.565 +        cmd= new UserCommand ();
  10.566 +        cmd.setName ("EDITORS"); // NOI18N
  10.567 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Editors_AN"));
  10.568 +        cmd.setDisplayName (cvsg("CMD_Editors")); // NOI18N
  10.569 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_EDITORS"));
  10.570 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.571 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.572 +        cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
  10.573 +        editingChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.574 +
  10.575 +        Children.Array watchingChildren = new Children.Array();
  10.576 +        cmd= new UserCommand ();
  10.577 +        cmd.setName("SUBMENU_WATCHES");
  10.578 +        cmd.setDisplayName(cvsg("SubmenuWatches"));
  10.579 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(watchingChildren, cmd) });
  10.580 +        
  10.581 +        cmd= new UserCommand ();
  10.582 +        cmd.setName ("WATCH_ON"); // NOI18N
  10.583 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_WatchOn_AN"));
  10.584 +        cmd.setDisplayName (cvsg("CMD_WatchOn")); // NOI18N
  10.585 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_WATCH_ON"));
  10.586 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.587 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.588 +        watchingChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.589 +
  10.590 +        cmd= new UserCommand ();
  10.591 +        cmd.setName ("WATCH_OFF"); // NOI18N
  10.592 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_WatchOff_AN"));
  10.593 +        cmd.setDisplayName (cvsg("CMD_WatchOff")); // NOI18N
  10.594 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_WATCH_OFF"));
  10.595 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.596 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.597 +        watchingChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.598 +
  10.599 +        cmd= new UserCommand ();
  10.600 +        cmd.setName ("WATCH_ADD"); // NOI18N
  10.601 +        cmd.setDisplayName (cvsg("CMD_WatchSet")); // NOI18N
  10.602 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_WatchSet_AN"));
  10.603 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_WATCH_ADD"));
  10.604 +        cmd.setProperty(VcsCommand.PROPERTY_ON_DIR, new Boolean(false));
  10.605 +        cmd.setProperty(VcsCommand.PROPERTY_ON_ROOT, new Boolean(false));
  10.606 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.607 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.608 +        watchingChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.609 +
  10.610 +        cmd= new UserCommand ();
  10.611 +        cmd.setName ("WATCH_ADD_DIR"); // NOI18N
  10.612 +        cmd.setDisplayName (cvsg("CMD_WatchSet")); // NOI18N
  10.613 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_WatchSet_AN"));
  10.614 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_WATCH_ADD_DIR"));
  10.615 +        cmd.setProperty(VcsCommand.PROPERTY_ON_FILE, new Boolean(false));
  10.616 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.617 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.618 +        watchingChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.619 +
  10.620 +        cmd= new UserCommand ();
  10.621 +        cmd.setName ("WATCHERS"); // NOI18N
  10.622 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Watchers_AN"));
  10.623 +        cmd.setDisplayName (cvsg("CMD_Watchers")); // NOI18N
  10.624 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_WATCHERS"));
  10.625 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.626 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.627 +        cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
  10.628 +        watchingChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.629 +
  10.630 +        // SEPARATOR
  10.631 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, null) });
  10.632 +
  10.633 +        cmd= new UserCommand ();
  10.634 +        cmd.setName ("STATUS"); // NOI18N
  10.635 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Status_AN"));
  10.636 +        cmd.setDisplayName (cvsg("CMD_Status")); // NOI18N
  10.637 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_STATUS"));
  10.638 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.639 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.640 +        cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
  10.641 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.642 +
  10.643 +        cmd= new UserCommand ();
  10.644 +        cmd.setName ("LOG"); // NOI18N
  10.645 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Log_AN"));
  10.646 +        cmd.setDisplayName (cvsg("CMD_Log")); // NOI18N
  10.647 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_LOG"));
  10.648 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.649 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.650 +        cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
  10.651 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.652 +
  10.653 +        // SEPARATOR
  10.654 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, null) });
  10.655 +
  10.656          cmd = new UserCommand();
  10.657 -        cmd.setName("PRE_CHECKOUT_MODULE");
  10.658 -        cmd.setExec(bu.getString ("EXEC_PRE_CHECKOUT_MODULE"/*+osName*/));
  10.659 -        cmd.setInput (""); // NOI18N
  10.660 -        cmd.setTimeout (0);
  10.661 -        cmd.setDataRegex ("(.*$)"); // NOI18N
  10.662 -//        cmd.setDataRegex (bu.getString("REGEX_PRE_CHECKOUT_MODULE")); // NOI18N
  10.663 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
  10.664 -        commands.add (cmd);
  10.665 -        UserCommand preModule = cmd;
  10.666 +        cmd.setName("SELECTOR_REVISIONS");
  10.667 +        cmd.setDisplayName (null); // NOI18N
  10.668 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_SELECTOR_REVISIONS"/*+osName*/));
  10.669 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.670 +//        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, bu.getString("REGEX_PRE_CHECKOUT_MODULE")); // NOI18N
  10.671 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.672 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.673 +
  10.674 +        cmd = new UserCommand();
  10.675 +        cmd.setName("SELECTOR_BRANCHES");
  10.676 +        cmd.setDisplayName (null); // NOI18N
  10.677 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_SELECTOR_BRANCHES"/*+osName*/));
  10.678 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.679 +//        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, bu.getString("REGEX_PRE_CHECKOUT_MODULE")); // NOI18N
  10.680 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.681 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.682 +
  10.683 +        cmd= new UserCommand ();
  10.684 +        cmd.setName ("CHECKOUT_REV"); // NOI18N
  10.685 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_CheckOutRevision_AN"));
  10.686 +        cmd.setDisplayName (cvsg("CMD_CheckOutRevision")); // NOI18N
  10.687 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_CHECKOUT_REV"));
  10.688 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.689 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.690 +        //cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
  10.691 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.692 +        cmd.setProperty(UserCommand.PROPERTY_CHECK_FOR_MODIFICATIONS, new Boolean(true));
  10.693 +        cmd.setProperty(VcsCommand.PROPERTY_ON_DIR, new Boolean(false));
  10.694 +        cmd.setProperty(VcsCommand.PROPERTY_ON_ROOT, new Boolean(false));
  10.695 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.696 +
  10.697 +        cmd= new UserCommand ();
  10.698 +        cmd.setName ("CHECKOUT_REV_DIR"); // NOI18N
  10.699 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_CheckOutRevision_AN"));
  10.700 +        cmd.setDisplayName (cvsg("CMD_CheckOutRevision")); // NOI18N
  10.701 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_CHECKOUT_REV_DIR"));
  10.702 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.703 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.704 +        cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
  10.705 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.706 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_RECURSIVELY_PATTERN_UNMATCHED, " -l ");
  10.707 +        cmd.setProperty(UserCommand.PROPERTY_CHECK_FOR_MODIFICATIONS, new Boolean(true));
  10.708 +        cmd.setProperty(VcsCommand.PROPERTY_ON_FILE, new Boolean(false));
  10.709 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.710 +
  10.711 +        cmd= new UserCommand ();
  10.712 +        cmd.setName ("UPDATE_REV"); // NOI18N
  10.713 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_UpdateRevision_AN"));
  10.714 +        cmd.setDisplayName (cvsg("CMD_UpdateRevision")); // NOI18N
  10.715 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_UPDATE_REV"));
  10.716 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.717 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.718 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.719 +        cmd.setProperty(UserCommand.PROPERTY_CHECK_FOR_MODIFICATIONS, new Boolean(true));
  10.720 +        cmd.setProperty(VcsCommand.PROPERTY_ON_DIR, new Boolean(false));
  10.721 +        cmd.setProperty(VcsCommand.PROPERTY_ON_ROOT, new Boolean(false));
  10.722 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.723 +
  10.724 +        cmd= new UserCommand ();
  10.725 +        cmd.setName ("UPDATE_REV_DIR"); // NOI18N
  10.726 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_UpdateRevision_AN"));
  10.727 +        cmd.setDisplayName (cvsg("CMD_UpdateRevision")); // NOI18N
  10.728 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_UPDATE_REV_DIR"));
  10.729 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.730 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.731 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.732 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_RECURSIVELY_PATTERN_UNMATCHED, " -l ");
  10.733 +        cmd.setProperty(UserCommand.PROPERTY_CHECK_FOR_MODIFICATIONS, new Boolean(true));
  10.734 +        cmd.setProperty(VcsCommand.PROPERTY_ON_FILE, new Boolean(false));
  10.735 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.736 +
  10.737 +        cmd= new UserCommand ();
  10.738 +        cmd.setName ("COMMIT_REV"); // NOI18N
  10.739 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_CommitToBranch_AN"));
  10.740 +        cmd.setDisplayName (cvsg("CMD_CommitToBranch")); // NOI18N
  10.741 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_COMMIT_REV"));
  10.742 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.743 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.744 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.745 +        cmd.setProperty(VcsCommand.PROPERTY_ON_DIR, new Boolean(false));
  10.746 +        cmd.setProperty(VcsCommand.PROPERTY_ON_ROOT, new Boolean(false));
  10.747 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.748 +
  10.749 +        cmd= new UserCommand ();
  10.750 +        cmd.setName ("COMMIT_REV_DIR"); // NOI18N
  10.751 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_CommitToBranch_AN"));
  10.752 +        cmd.setDisplayName (cvsg("CMD_CommitToBranch")); // NOI18N
  10.753 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_COMMIT_REV_DIR"));
  10.754 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.755 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.756 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.757 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_RECURSIVELY_PATTERN_UNMATCHED, " -l ");
  10.758 +        cmd.setProperty(VcsCommand.PROPERTY_ON_FILE, new Boolean(false));
  10.759 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.760 +
  10.761 +        cmd= new UserCommand ();
  10.762 +        cmd.setName ("MERGE"); // NOI18N
  10.763 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_MergeWithBranch_AN"));
  10.764 +        cmd.setDisplayName (cvsg("CMD_MergeWithBranch")); // NOI18N
  10.765 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_MERGE"));
  10.766 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.767 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.768 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.769 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_RECURSIVELY_PATTERN_UNMATCHED, " -l ");
  10.770 +        cmd.setProperty(UserCommand.PROPERTY_CHECK_FOR_MODIFICATIONS, new Boolean(true));
  10.771 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.772 +
  10.773 +        cmd= new UserCommand ();
  10.774 +        cmd.setName ("REM_STICKY"); // NOI18N
  10.775 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_RemoveStickyTag_AN"));
  10.776 +        cmd.setDisplayName (cvsg("CMD_RemoveStickyTag")); // NOI18N
  10.777 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_REM_STICKY"));
  10.778 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.779 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.780 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.781 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_RECURSIVELY_PATTERN_UNMATCHED, " -l ");
  10.782 +        cmd.setProperty(UserCommand.PROPERTY_CHECK_FOR_MODIFICATIONS, new Boolean(true));
  10.783 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.784 +
  10.785 +
  10.786 +        cmd= new UserCommand ();
  10.787 +        cmd.setName ("TAGS"); // NOI18N
  10.788 +        cmd.setDisplayName (cvsg("CMD_AddTag")); // NOI18N
  10.789 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_ADD_TAG"));
  10.790 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.791 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.792 +        cmd.setProperty(VcsCommand.PROPERTY_CHANGING_NUM_REVISIONS, new Boolean(true)); // when I add a branch tag
  10.793 +        cmd.setProperty(VcsCommand.PROPERTY_CHANGING_REVISION, new Boolean(true)); // when add a tag to a revision
  10.794 +        //cmd.setChangedRevisionVariableName("REVISION_NAME");
  10.795 +        cmd.setProperty(VcsCommand.PROPERTY_NOTIFICATION_SUCCESS_MSG, bu.getString("NOTIFICATION_SUCCESS_ADD_TAG"));
  10.796 +        cmd.setProperty(VcsCommand.PROPERTY_NOTIFICATION_FAIL_MSG, bu.getString("NOTIFICATION_FAIL_ADD_TAG"));
  10.797 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.798 +
  10.799 +        // SEPARATOR
  10.800 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, null) });
  10.801 +
  10.802 +        cmd= new UserCommand ();
  10.803 +        cmd.setName ("BRANCHES"); // NOI18N
  10.804 +        cmd.setDisplayName (cvsg("CMD_ViewBranches")); // NOI18N
  10.805 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_BRANCHES"));
  10.806 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.807 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.808 +        cmd.setProperty(VcsCommand.PROPERTY_ON_DIR, new Boolean(false));
  10.809 +        cmd.setProperty(VcsCommand.PROPERTY_ON_ROOT, new Boolean(false));
  10.810 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.811 +
  10.812 +        cmd= new UserCommand ();
  10.813 +        cmd.setName ("DIFF"); // NOI18N
  10.814 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Diff_AN"));
  10.815 +        cmd.setDisplayName (cvsg("CMD_Diff")); // NOI18N
  10.816 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_DIFF"));
  10.817 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, bu.getString ("REGEX_DIFF")); // NOI18N
  10.818 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.819 +        cmd.setProperty(VcsCommand.PROPERTY_ON_DIR, new Boolean(false));
  10.820 +        cmd.setProperty(VcsCommand.PROPERTY_ON_ROOT, new Boolean(false));
  10.821 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.822 +
  10.823 +        cmd= new UserCommand ();
  10.824 +        cmd.setName ("REVISION_VIEW"); // NOI18N
  10.825 +        cmd.setDisplayName (cvsg("CMD_RevisionView")); // NOI18N
  10.826 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_REVISION_VIEW"));
  10.827 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.828 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.829 +        cmd.setProperty(VcsCommand.PROPERTY_ON_DIR, new Boolean(false));
  10.830 +        cmd.setProperty(VcsCommand.PROPERTY_ON_ROOT, new Boolean(false));
  10.831 +        children.add(new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.832 +
  10.833 +        /*
  10.834 +        Children.Array revisionChildren = new Children.Array();
  10.835 +        cmd= new UserCommand ();
  10.836 +        cmd.setName ("REVISION_EXPLORER_MENU"); // NOI18N
  10.837 +        cmd.setDisplayName (cvsg("CMD_RevisionExplorerMenu")); // NOI18N
  10.838 +        VcsCommandNode revisionCommands = new VcsCommandNode(revisionChildren, cmd);
  10.839 +        children.add(new VcsCommandNode[] { revisionCommands });
  10.840 +         */
  10.841 +
  10.842 +        cmd= new UserCommand ();
  10.843 +        cmd.setName ("REVISION_GETTER"); // NOI18N
  10.844 +        cmd.setDisplayName (null); // NOI18N
  10.845 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_REVISION_GETTER"));
  10.846 +        children.add(new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.847 +
  10.848 +        cmd= new UserCommand ();
  10.849 +        cmd.setName ("REVISION_UPDATE"); // NOI18N
  10.850 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Update_AN"));
  10.851 +        cmd.setDisplayName (cvsg("CMD_Update")); // NOI18N
  10.852 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_REVISION_UPDATE"));
  10.853 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.854 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.855 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.856 +        cmd.setProperty(UserCommand.PROPERTY_CHECK_FOR_MODIFICATIONS, new Boolean(true));
  10.857 +        cmd.setProperty(VcsCommand.PROPERTY_NUM_REVISIONS, new Integer(1));
  10.858 +        children.add(new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.859 +
  10.860 +        cmd= new UserCommand ();
  10.861 +        cmd.setName ("REVISION_MERGE"); // NOI18N
  10.862 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_MergeRevisions_AN"));
  10.863 +        cmd.setDisplayName (cvsg("CMD_MergeRevisions")); // NOI18N
  10.864 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_REVISION_MERGE"));
  10.865 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.866 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.867 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.868 +        cmd.setProperty(UserCommand.PROPERTY_CHECK_FOR_MODIFICATIONS, new Boolean(true));
  10.869 +        cmd.setProperty(VcsCommand.PROPERTY_NUM_REVISIONS, new Integer(1));
  10.870 +        children.add(new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.871 +
  10.872 +        cmd= new UserCommand ();
  10.873 +        cmd.setName ("REVISION_MERGE2"); // NOI18N
  10.874 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_MergeRevisions2_AN"));
  10.875 +        cmd.setDisplayName (cvsg("CMD_MergeRevisions2")); // NOI18N
  10.876 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_REVISION_MERGE"));
  10.877 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.878 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.879 +        cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
  10.880 +        cmd.setProperty(UserCommand.PROPERTY_CHECK_FOR_MODIFICATIONS, new Boolean(true));
  10.881 +        cmd.setProperty(VcsCommand.PROPERTY_NUM_REVISIONS, new Integer(2));
  10.882 +        children.add(new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.883 +
  10.884 +        cmd= new UserCommand ();
  10.885 +        cmd.setName ("REVISION_DIFF"); // NOI18N
  10.886 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Diff_AN"));
  10.887 +        cmd.setDisplayName (cvsg("CMD_Diff")); // NOI18N
  10.888 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_REVISION_DIFF"));
  10.889 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, bu.getString ("REGEX_DIFF")); // NOI18N
  10.890 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.891 +        cmd.setProperty(VcsCommand.PROPERTY_NUM_REVISIONS, new Integer(1));
  10.892 +        children.add(new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.893 +
  10.894 +        cmd= new UserCommand ();
  10.895 +        cmd.setName ("REVISION_DIFF2"); // NOI18N
  10.896 +        cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Diff_AN"));
  10.897 +        cmd.setDisplayName (cvsg("CMD_Diff")); // NOI18N
  10.898 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_REVISION_DIFF"));
  10.899 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, bu.getString ("REGEX_DIFF")); // NOI18N
  10.900 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.901 +        cmd.setProperty(VcsCommand.PROPERTY_NUM_REVISIONS, new Integer(2));
  10.902 +        children.add(new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.903 +
  10.904 +        cmd= new UserCommand ();
  10.905 +        cmd.setName ("REVISION_OPEN"); // NOI18N
  10.906 +        //cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Update_AN"));
  10.907 +        cmd.setDisplayName (null); // NOI18N
  10.908 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_REVISION_OPEN"));
  10.909 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.910 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.911 +        cmd.setProperty(VcsCommand.PROPERTY_NUM_REVISIONS, new Integer(1));
  10.912 +        children.add(new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.913  
  10.914          /* MK - adding for wizard customizer support */
  10.915          cmd = new UserCommand();
  10.916          cmd.setName("CUSTOMIZER");
  10.917 -        cmd.setExec(bu.getString ("EXEC_CUSTOMIZER"+osName));
  10.918 -        cmd.setInput (""); // NOI18N
  10.919 -        cmd.setTimeout (0);
  10.920 -        cmd.setDataRegex ("(.*$)"); // NOI18N
  10.921 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
  10.922 -        commands.add (cmd);
  10.923 +        cmd.setDisplayName (null); // NOI18N
  10.924 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_CUSTOMIZER"));
  10.925 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.926 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.927 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.928  
  10.929          /* MK - adding for wizard customizer support */
  10.930          cmd = new UserCommand();
  10.931          cmd.setName("GET_MODULE_NAME");
  10.932 -        cmd.setExec(bu.getString ("EXEC_GET_MODULE_NAME"+osName));
  10.933 -        cmd.setInput (""); // NOI18N
  10.934 -        cmd.setTimeout (0);
  10.935 -        cmd.setDataRegex ("(.*$)"); // NOI18N
  10.936 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
  10.937 -        commands.add (cmd);        
  10.938 +        cmd.setDisplayName (null); // NOI18N
  10.939 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_GET_MODULE_NAME"));
  10.940 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
  10.941 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
  10.942 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
  10.943          
  10.944          cmd= new UserCommand ();
  10.945 -        cmd.setName ("CHECKOUT_MODULE"); // NOI18N
  10.946 -        cmd.setAdvancedName(g("CMD_CheckOut_AN"));
  10.947 -        cmd.setLabel (g("CMD_CheckOutModule")/*+moduleName*/); // NOI18N
  10.948 -        cmd.setExec (bu.getString ("EXEC_CHECKOUT_MODULE"+osName));
  10.949 -        cmd.setInput (""); // NOI18N
  10.950 -        cmd.setTimeout (0);
  10.951 -        cmd.setDataRegex ("(.*$)"); // NOI18N
  10.952 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
  10.953 -        cmd.setDisplayOutput (true);
  10.954 -        cmd.setDoRefresh(true);
  10.955 -        cmd.setRefreshRecursivelyPattern("checkout");
  10.956 -        //cmd.addPreCommand(preModule);
  10.957 -        commands.add (cmd);
  10.958 -        cmd= new UserCommand ();
  10.959 -
  10.960          /* MK for the initial checkout- does checkout more modules at once */ 
  10.961          cmd.setName ("CHECKOUT_MODULES"); // NOI18N
  10.962 -        cmd.setAdvancedName(g("CMD_CheckOut_AN"));
  10.963 -        cmd.setLabel (g("CMD_CheckOutModule")/*+moduleName*/); // NOI18N
  10.964 -        cmd.setExec (bu.getString ("EXEC_CHECKOUT_MODULES"+osName));
  10.965 -        cmd.setInput (""); // NOI18N
  10.966 -        cmd.setTimeout (0);
  10.967 -        cmd.setDataRegex ("(.*$)"); // NOI18N
  10.968 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
  10.969 -        cmd.setDisplayOutput (true);
  10.970 -        //cmd.setDoRefresh(true);
  10.971 -        commands.add (cmd);
  10.972 -
  10.973 -        cmd= new UserCommand ();
  10.974 -        cmd.setName ("EXPORT_DATE"); // NOI18N
  10.975 -        cmd.setAdvancedName(g("CMD_Export_AN"));
  10.976 -        cmd.setLabel (g("CMD_ExportByDate")); // NOI18N
  10.977 -        cmd.setExec (bu.getString ("EXEC_EXPORT_DATE"+osName));
  10.978 -        cmd.setInput (""); // NOI18N
  10.979 -        cmd.setTimeout (0);
  10.980 -        cmd.setDataRegex ("(.*$)"); // NOI18N
  10.981 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
  10.982 -        cmd.setDisplayOutput (true);
  10.983 -        commands.add (cmd);
  10.984 -
  10.985 -        cmd= new UserCommand ();
  10.986 -        cmd.setName ("EXPORT_REVISION"); // NOI18N
  10.987 -        cmd.setAdvancedName(g("CMD_Export_AN"));
  10.988 -        cmd.setLabel (g("CMD_ExportByRevision")); // NOI18N
  10.989 -        cmd.setExec (bu.getString ("EXEC_EXPORT_REVISION"+osName));
  10.990 -        cmd.setInput (""); // NOI18N
  10.991 -        cmd.setTimeout (0);
  10.992 -        cmd.setDataRegex ("(.*$)"); // NOI18N
  10.993 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
  10.994 -        cmd.setDisplayOutput (true);
  10.995 -        commands.add (cmd);
  10.996 -
  10.997 -        cmd= new UserCommand ();
  10.998 -        cmd.setName ("EXPORT_MODULE_DATE"); // NOI18N
  10.999 -        cmd.setAdvancedName(g("CMD_Export_AN"));
 10.1000 -        cmd.setLabel (g("CMD_ExportModuleByDate")); // NOI18N
 10.1001 -        cmd.setExec (bu.getString ("EXEC_EXPORT_MODULE_DATE"+osName));
 10.1002 -        cmd.setInput (""); // NOI18N
 10.1003 -        cmd.setTimeout (0);
 10.1004 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1005 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1006 -        cmd.setDisplayOutput (true);
 10.1007 -        //cmd.addPreCommand(preModule);   //Same as checkout module.
 10.1008 -        commands.add (cmd);
 10.1009 -
 10.1010 -        cmd= new UserCommand ();
 10.1011 -        cmd.setName ("EXPORT_MODULE_REVISION"); // NOI18N
 10.1012 -        cmd.setAdvancedName(g("CMD_Export_AN"));
 10.1013 -        cmd.setLabel (g("CMD_ExportModuleByRevision")); // NOI18N
 10.1014 -        cmd.setExec (bu.getString ("EXEC_EXPORT_MODULE_REVISION"+osName));
 10.1015 -        cmd.setInput (""); // NOI18N
 10.1016 -        cmd.setTimeout (0);
 10.1017 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1018 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1019 -        cmd.setDisplayOutput (true);
 10.1020 -        //cmd.addPreCommand(preModule);   //Same as checkout module.
 10.1021 -        commands.add (cmd);
 10.1022 -
 10.1023 -        cmd= new UserCommand ();
 10.1024 -        cmd.setName ("LOGIN"); // NOI18N
 10.1025 -        cmd.setLabel (g("CMD_Login")); // NOI18N
 10.1026 -        cmd.setExec (bu.getString ("EXEC_LOGIN"));
 10.1027 -        cmd.setInput (""); // NOI18N
 10.1028 -        cmd.setTimeout (0);
 10.1029 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1030 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1031 -        commands.add (cmd);
 10.1032 -
 10.1033 -        cmd= new UserCommand ();
 10.1034 -        cmd.setName ("INIT"); // NOI18N
 10.1035 -        cmd.setAdvancedName(g("CMD_Init_AN"));
 10.1036 -        cmd.setLabel (g("CMD_Init")); // NOI18N
 10.1037 -        cmd.setExec (bu.getString ("EXEC_INIT"+osName));
 10.1038 -        cmd.setInput (""); // NOI18N
 10.1039 -        cmd.setTimeout (0);
 10.1040 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1041 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1042 -        commands.add (cmd);
 10.1043 -
 10.1044 -        D.deb("cmd 6 = "+cmd);
 10.1045 -
 10.1046 -        cmd= new UserCommand ();
 10.1047 -        cmd.setName ("UPDATE"); // NOI18N
 10.1048 -        cmd.setAdvancedName(g("CMD_Update_AN"));
 10.1049 -        cmd.setLabel (g("CMD_Update")); // NOI18N
 10.1050 -        cmd.setExec (bu.getString ("EXEC_UPDATE"+osName));
 10.1051 -        cmd.setInput (""); // NOI18N
 10.1052 -        cmd.setTimeout (0);
 10.1053 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1054 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1055 -        cmd.setDoRefresh(true);
 10.1056 -        cmd.setRefreshRecursivelyPattern(" -R ");
 10.1057 -        cmd.setRefreshParent(false);
 10.1058 -        cmd.setCheckForModifications(true);
 10.1059 -        commands.add (cmd);
 10.1060 -
 10.1061 -        cmd = new UserCommand();
 10.1062 -        cmd.setName("PRE_COMMIT");
 10.1063 -        cmd.setExec(bu.getString ("EXEC_PRE_COMMIT"+osName));
 10.1064 -        cmd.setInput (""); // NOI18N
 10.1065 -        cmd.setTimeout (0);
 10.1066 -        cmd.setDataRegex (bu.getString("REGEX_PRE_COMMIT")); // NOI18N
 10.1067 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1068 -        commands.add (cmd);
 10.1069 -        UserCommand preCmd = cmd;
 10.1070 -
 10.1071 -        cmd= new UserCommand ();
 10.1072 -        cmd.setName ("COMMIT"); // NOI18N
 10.1073 -        cmd.setAdvancedName(g("CMD_Commit_AN"));
 10.1074 -        cmd.setLabel (g("CMD_Commit")); // NOI18N
 10.1075 -        cmd.setExec (bu.getString ("EXEC_COMMIT"+osName));
 10.1076 -        cmd.setInput (""); // NOI18N
 10.1077 -        cmd.setTimeout (0);
 10.1078 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1079 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1080 -        cmd.setDoRefresh(true);
 10.1081 -        cmd.addPreCommand(preCmd);
 10.1082 -        cmd.setCheckForModifications(true);
 10.1083 -        cmd.setChangingNumRevisions(true);
 10.1084 -        commands.add (cmd);
 10.1085 -
 10.1086 -        cmd= new UserCommand ();
 10.1087 -        cmd.setName ("REMOVE"); // NOI18N
 10.1088 -        cmd.setAdvancedName(g("CMD_Remove_AN"));
 10.1089 -        cmd.setLabel (g("CMD_Remove")); // NOI18N
 10.1090 -        cmd.setExec (bu.getString ("EXEC_REMOVE"+osName));
 10.1091 -        cmd.setInput (""); // NOI18N
 10.1092 -        cmd.setTimeout (0);
 10.1093 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1094 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1095 -        cmd.setDoRefresh(true);
 10.1096 -        cmd.setConfirmationMsg(bu.getString("VAR_REMOVE_MSG"));
 10.1097 -        cmd.setProcessAllFiles(true); // I want to remove all files including *.class
 10.1098 -        commands.add (cmd);
 10.1099 -
 10.1100 -        cmd= new UserCommand ();
 10.1101 -        cmd.setName ("LOCK"); // NOI18N
 10.1102 -        cmd.setAdvancedName(g("CMD_Lock_AN"));
 10.1103 -        cmd.setLabel (g("CMD_Lock")); // NOI18N
 10.1104 -        cmd.setExec (bu.getString ("EXEC_LOCK"+osName));
 10.1105 -        cmd.setInput (""); // NOI18N
 10.1106 -        cmd.setTimeout (0);
 10.1107 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1108 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1109 -        cmd.setDisplayOutput (false);
 10.1110 -        commands.add (cmd);
 10.1111 -
 10.1112 -        cmd= new UserCommand ();
 10.1113 -        cmd.setName ("UNLOCK1"); // NOI18N
 10.1114 -        cmd.setAdvancedName(g("CMD_Unlock_AN"));
 10.1115 -        cmd.setLabel (g("CMD_Unlock")); // NOI18N
 10.1116 -        cmd.setExec (bu.getString ("EXEC_UNLOCK"+osName));
 10.1117 -        cmd.setInput (""); // NOI18N
 10.1118 -        cmd.setTimeout (0);
 10.1119 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1120 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1121 -        cmd.setDisplayOutput (false);
 10.1122 -        commands.add (cmd);
 10.1123 -
 10.1124 -        cmd= new UserCommand ();
 10.1125 -        cmd.setName ("EDIT"); // NOI18N
 10.1126 -        cmd.setAdvancedName(g("CMD_Edit_AN"));
 10.1127 -        cmd.setLabel (g("CMD_Edit")); // NOI18N
 10.1128 -        cmd.setExec (bu.getString ("EXEC_EDIT"+osName));
 10.1129 -        cmd.setInput (""); // NOI18N
 10.1130 -        cmd.setTimeout (0);
 10.1131 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1132 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1133 -        cmd.setDisplayOutput (false);
 10.1134 -        commands.add (cmd);
 10.1135 -
 10.1136 -        cmd= new UserCommand ();
 10.1137 -        cmd.setName ("UNEDIT"); // NOI18N
 10.1138 -        cmd.setAdvancedName(g("CMD_Unedit_AN"));
 10.1139 -        cmd.setLabel (g("CMD_Unedit")); // NOI18N
 10.1140 -        cmd.setExec (bu.getString ("EXEC_UNEDIT"+osName));
 10.1141 -        cmd.setInput ("y\n"); // NOI18N
 10.1142 -        cmd.setTimeout (0);
 10.1143 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1144 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1145 -        cmd.setDisplayOutput (false);
 10.1146 -        cmd.setConfirmationMsg(bu.getString("VAR_UNEDIT_MSG"));
 10.1147 -        cmd.setCheckForModifications(true);
 10.1148 -        cmd.setDoRefresh(true);
 10.1149 -        commands.add (cmd);
 10.1150 -
 10.1151 -        cmd= new UserCommand ();
 10.1152 -        cmd.setName ("EDITORS"); // NOI18N
 10.1153 -        cmd.setAdvancedName(g("CMD_Editors_AN"));
 10.1154 -        cmd.setLabel (g("CMD_Editors")); // NOI18N
 10.1155 -        cmd.setExec (bu.getString ("EXEC_EDITORS"+osName));
 10.1156 -        cmd.setInput (""); // NOI18N
 10.1157 -        cmd.setTimeout (0);
 10.1158 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1159 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1160 -        cmd.setDisplayOutput (true);
 10.1161 -        commands.add (cmd);
 10.1162 -
 10.1163 -        cmd= new UserCommand ();
 10.1164 -        cmd.setName ("WATCH_ON"); // NOI18N
 10.1165 -        cmd.setAdvancedName(g("CMD_WatchOn_AN"));
 10.1166 -        cmd.setLabel (g("CMD_WatchOn")); // NOI18N
 10.1167 -        cmd.setExec (bu.getString ("EXEC_WATCH_ON"+osName));
 10.1168 -        cmd.setInput (""); // NOI18N
 10.1169 -        cmd.setTimeout (0);
 10.1170 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1171 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1172 -        cmd.setDisplayOutput (false);
 10.1173 -        commands.add (cmd);
 10.1174 -
 10.1175 -        cmd= new UserCommand ();
 10.1176 -        cmd.setName ("WATCH_OFF"); // NOI18N
 10.1177 -        cmd.setAdvancedName(g("CMD_WatchOff_AN"));
 10.1178 -        cmd.setLabel (g("CMD_WatchOff")); // NOI18N
 10.1179 -        cmd.setExec (bu.getString ("EXEC_WATCH_OFF"+osName));
 10.1180 -        cmd.setInput (""); // NOI18N
 10.1181 -        cmd.setTimeout (0);
 10.1182 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1183 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1184 -        cmd.setDisplayOutput (false);
 10.1185 -        commands.add (cmd);
 10.1186 -
 10.1187 -        cmd= new UserCommand ();
 10.1188 -        cmd.setName ("WATCH_ADD"); // NOI18N
 10.1189 -        cmd.setLabel (g("CMD_WatchSet")); // NOI18N
 10.1190 -        cmd.setAdvancedName(g("CMD_WatchSet_AN"));
 10.1191 -        cmd.setExec (bu.getString ("EXEC_WATCH_ADD"+osName));
 10.1192 -        cmd.setInput (""); // NOI18N
 10.1193 -        cmd.setTimeout (0);
 10.1194 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1195 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1196 -        cmd.setDisplayOutput (false);
 10.1197 -        commands.add (cmd);
 10.1198 -
 10.1199 -        cmd= new UserCommand ();
 10.1200 -        cmd.setName ("WATCHERS"); // NOI18N
 10.1201 -        cmd.setAdvancedName(g("CMD_Watchers_AN"));
 10.1202 -        cmd.setLabel (g("CMD_Watchers")); // NOI18N
 10.1203 -        cmd.setExec (bu.getString ("EXEC_WATCHERS"+osName));
 10.1204 -        cmd.setInput (""); // NOI18N
 10.1205 -        cmd.setTimeout (0);
 10.1206 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1207 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1208 -        cmd.setDisplayOutput (true);
 10.1209 -        commands.add (cmd);
 10.1210 -
 10.1211 -        cmd= new UserCommand ();
 10.1212 -        cmd.setName ("STATUS"); // NOI18N
 10.1213 -        cmd.setAdvancedName(g("CMD_Status_AN"));
 10.1214 -        cmd.setLabel (g("CMD_Status")); // NOI18N
 10.1215 -        cmd.setExec (bu.getString ("EXEC_STATUS"+osName));
 10.1216 -        cmd.setInput (""); // NOI18N
 10.1217 -        cmd.setTimeout (0);
 10.1218 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1219 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1220 -        cmd.setDisplayOutput (true);
 10.1221 -        commands.add (cmd);
 10.1222 -
 10.1223 -        cmd= new UserCommand ();
 10.1224 -        cmd.setName ("LOG"); // NOI18N
 10.1225 -        cmd.setAdvancedName(g("CMD_Log_AN"));
 10.1226 -        cmd.setLabel (g("CMD_Log")); // NOI18N
 10.1227 -        cmd.setExec (bu.getString ("EXEC_LOG"+osName));
 10.1228 -        cmd.setInput (""); // NOI18N
 10.1229 -        cmd.setTimeout (0);
 10.1230 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1231 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1232 -        cmd.setDisplayOutput (true);
 10.1233 -        commands.add (cmd);
 10.1234 -
 10.1235 -        cmd= new UserCommand ();
 10.1236 -        cmd.setName ("ADD"); // NOI18N
 10.1237 -        cmd.setAdvancedName(g("CMD_Add_AN"));
 10.1238 -        cmd.setLabel (g("CMD_Add")); // NOI18N
 10.1239 -        cmd.setExec (bu.getString ("EXEC_ADD"+osName));
 10.1240 -        cmd.setInput (""); // NOI18N
 10.1241 -        cmd.setTimeout (0);
 10.1242 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1243 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1244 -        cmd.setDoRefresh(true);
 10.1245 -        commands.add (cmd);
 10.1246 -
 10.1247 -        cmd= new UserCommand ();
 10.1248 -        cmd.setName ("ADD_DIR"); // NOI18N
 10.1249 -        cmd.setAdvancedName(g("CMD_Add_AN"));
 10.1250 -        cmd.setLabel (g("CMD_Add")); // NOI18N
 10.1251 -        cmd.setExec (bu.getString ("EXEC_ADD_DIR"+osName));
 10.1252 -        cmd.setInput (""); // NOI18N
 10.1253 -        cmd.setTimeout (0);
 10.1254 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1255 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1256 -        cmd.setDoRefresh(true);
 10.1257 -        commands.add (cmd);
 10.1258 -
 10.1259 -        cmd= new UserCommand ();
 10.1260 -        cmd.setName ("IMPORT"); // NOI18N
 10.1261 -        cmd.setAdvancedName(g("CMD_Import_AN"));
 10.1262 -        cmd.setLabel (g("CMD_Import")); // NOI18N
 10.1263 -        cmd.setExec (bu.getString ("EXEC_IMPORT"+osName));
 10.1264 -        cmd.setInput (""); // NOI18N
 10.1265 -        cmd.setTimeout (0);
 10.1266 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1267 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1268 -        cmd.setDisplayOutput (true);
 10.1269 -        commands.add (cmd);
 10.1270 -
 10.1271 -        cmd= new UserCommand ();
 10.1272 -        cmd.setName ("IMPORT_AND_CHECKOUT"); // NOI18N
 10.1273 -        cmd.setAdvancedName(g("CMD_ImportAndCheckout_AN"));
 10.1274 -        cmd.setLabel (g("CMD_ImportAndCheckout")); // NOI18N
 10.1275 -        cmd.setExec (bu.getString ("EXEC_IMPORT_AND_CHECKOUT"+osName));
 10.1276 -        cmd.setInput (""); // NOI18N
 10.1277 -        cmd.setTimeout (0);
 10.1278 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1279 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1280 -        cmd.setDisplayOutput (true);
 10.1281 -        cmd.setDoRefresh(true);
 10.1282 -        cmd.setRefreshRecursivelyPattern(" -R ");
 10.1283 -        cmd.setCheckForModifications(true);
 10.1284 -        //cmd.setRefreshParent(false);
 10.1285 -        commands.add (cmd);
 10.1286 -
 10.1287 -        /*
 10.1288 -        cmd= new UserCommand ();
 10.1289 -        cmd.setName ("IMPORT_MODULE"); // NOI18N
 10.1290 -        cmd.setLabel (g("CMD_ImportModule")+moduleName); // NOI18N
 10.1291 -        cmd.setExec (bu.getString ("EXEC_IMPORT_MODULE"+osName));
 10.1292 -        cmd.setInput (""); // NOI18N
 10.1293 -        cmd.setTimeout (0);
 10.1294 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1295 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1296 -        cmd.setDisplayOutput (true);
 10.1297 -        commands.add (cmd);
 10.1298 -        */
 10.1299 -
 10.1300 -        cmd = new UserCommand();
 10.1301 -        cmd.setName("SELECTOR_REVISIONS");
 10.1302 -        cmd.setExec(bu.getString ("EXEC_SELECTOR_REVISIONS"/*+osName*/));
 10.1303 -        cmd.setInput (""); // NOI18N
 10.1304 -        cmd.setTimeout (0);
 10.1305 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1306 -//        cmd.setDataRegex (bu.getString("REGEX_PRE_CHECKOUT_MODULE")); // NOI18N
 10.1307 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1308 -        commands.add (cmd);
 10.1309 -
 10.1310 -        cmd = new UserCommand();
 10.1311 -        cmd.setName("SELECTOR_BRANCHES");
 10.1312 -        cmd.setExec(bu.getString ("EXEC_SELECTOR_BRANCHES"/*+osName*/));
 10.1313 -        cmd.setInput (""); // NOI18N
 10.1314 -        cmd.setTimeout (0);
 10.1315 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1316 -//        cmd.setDataRegex (bu.getString("REGEX_PRE_CHECKOUT_MODULE")); // NOI18N
 10.1317 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1318 -        commands.add (cmd);
 10.1319 -
 10.1320 -        cmd= new UserCommand ();
 10.1321 -        cmd.setName ("CHECKOUT_REV"); // NOI18N
 10.1322 -        cmd.setAdvancedName(g("CMD_CheckOutRevision_AN"));
 10.1323 -        cmd.setLabel (g("CMD_CheckOutRevision")); // NOI18N
 10.1324 -        cmd.setExec (bu.getString ("EXEC_CHECKOUT_REV"+osName));
 10.1325 -        cmd.setInput (""); // NOI18N
 10.1326 -        cmd.setTimeout (0);
 10.1327 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1328 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1329 -        cmd.setDisplayOutput (true);
 10.1330 -        cmd.setDoRefresh(true);
 10.1331 -        cmd.setCheckForModifications(true);
 10.1332 -        //cmd.setRefreshRecursivelyPattern(" -R ");
 10.1333 -        //cmd.setRefreshParent(false);
 10.1334 -        commands.add (cmd);
 10.1335 -
 10.1336 -        cmd= new UserCommand ();
 10.1337 -        cmd.setName ("CHECKOUT_REV_DIR"); // NOI18N
 10.1338 -        cmd.setAdvancedName(g("CMD_CheckOutRevision_AN"));
 10.1339 -        cmd.setLabel (g("CMD_CheckOutRevision")); // NOI18N
 10.1340 -        cmd.setExec (bu.getString ("EXEC_CHECKOUT_REV_DIR"+osName));
 10.1341 -        cmd.setInput (""); // NOI18N
 10.1342 -        cmd.setTimeout (0);
 10.1343 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1344 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1345 -        cmd.setDisplayOutput (true);
 10.1346 -        cmd.setDoRefresh(true);
 10.1347 -        cmd.setRefreshRecursivelyPattern(" -R ");
 10.1348 -        cmd.setRefreshParent(false);
 10.1349 -        cmd.setCheckForModifications(true);
 10.1350 -        commands.add (cmd);
 10.1351 -
 10.1352 -        cmd= new UserCommand ();
 10.1353 -        cmd.setName ("UPDATE_REV"); // NOI18N
 10.1354 -        cmd.setAdvancedName(g("CMD_UpdateRevision_AN"));
 10.1355 -        cmd.setLabel (g("CMD_UpdateRevision")); // NOI18N
 10.1356 -        cmd.setExec (bu.getString ("EXEC_UPDATE_REV"+osName));
 10.1357 -        cmd.setInput (""); // NOI18N
 10.1358 -        cmd.setTimeout (0);
 10.1359 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1360 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1361 -        cmd.setDoRefresh(true);
 10.1362 -        cmd.setRefreshRecursivelyPattern(" -R ");
 10.1363 -        cmd.setRefreshParent(false);
 10.1364 -        cmd.setCheckForModifications(true);
 10.1365 -        commands.add (cmd);
 10.1366 -
 10.1367 -        cmd= new UserCommand ();
 10.1368 -        cmd.setName ("UPDATE_REV_DIR"); // NOI18N
 10.1369 -        cmd.setAdvancedName(g("CMD_UpdateRevision_AN"));
 10.1370 -        cmd.setLabel (g("CMD_UpdateRevision")); // NOI18N
 10.1371 -        cmd.setExec (bu.getString ("EXEC_UPDATE_REV_DIR"+osName));
 10.1372 -        cmd.setInput (""); // NOI18N
 10.1373 -        cmd.setTimeout (0);
 10.1374 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1375 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1376 -        cmd.setDoRefresh(true);
 10.1377 -        cmd.setRefreshRecursivelyPattern(" -R ");
 10.1378 -        cmd.setRefreshParent(false);
 10.1379 -        cmd.setCheckForModifications(true);
 10.1380 -        commands.add (cmd);
 10.1381 -
 10.1382 -        cmd= new UserCommand ();
 10.1383 -        cmd.setName ("COMMIT_REV"); // NOI18N
 10.1384 -        cmd.setAdvancedName(g("CMD_CommitToBranch_AN"));
 10.1385 -        cmd.setLabel (g("CMD_CommitToBranch")); // NOI18N
 10.1386 -        cmd.setExec (bu.getString ("EXEC_COMMIT_REV"+osName));
 10.1387 -        cmd.setInput (""); // NOI18N
 10.1388 -        cmd.setTimeout (0);
 10.1389 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1390 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1391 -        cmd.setDoRefresh(true);
 10.1392 -        commands.add (cmd);
 10.1393 -
 10.1394 -        cmd= new UserCommand ();
 10.1395 -        cmd.setName ("COMMIT_REV_DIR"); // NOI18N
 10.1396 -        cmd.setAdvancedName(g("CMD_CommitToBranch_AN"));
 10.1397 -        cmd.setLabel (g("CMD_CommitToBranch")); // NOI18N
 10.1398 -        cmd.setExec (bu.getString ("EXEC_COMMIT_REV_DIR"+osName));
 10.1399 -        cmd.setInput (""); // NOI18N
 10.1400 -        cmd.setTimeout (0);
 10.1401 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1402 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1403 -        cmd.setDoRefresh(true);
 10.1404 -        commands.add (cmd);
 10.1405 -
 10.1406 -        cmd= new UserCommand ();
 10.1407 -        cmd.setName ("MERGE"); // NOI18N
 10.1408 -        cmd.setAdvancedName(g("CMD_MergeWithBranch_AN"));
 10.1409 -        cmd.setLabel (g("CMD_MergeWithBranch")); // NOI18N
 10.1410 -        cmd.setExec (bu.getString ("EXEC_MERGE"+osName));
 10.1411 -        cmd.setInput (""); // NOI18N
 10.1412 -        cmd.setTimeout (0);
 10.1413 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1414 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1415 -        cmd.setDoRefresh(true);
 10.1416 -        cmd.setRefreshRecursivelyPattern(" -R ");
 10.1417 -        cmd.setRefreshParent(false);
 10.1418 -        cmd.setCheckForModifications(true);
 10.1419 -        commands.add (cmd);
 10.1420 -
 10.1421 -        cmd= new UserCommand ();
 10.1422 -        cmd.setName ("REM_STICKY"); // NOI18N
 10.1423 -        cmd.setAdvancedName(g("CMD_RemoveStickyTag_AN"));
 10.1424 -        cmd.setLabel (g("CMD_RemoveStickyTag")); // NOI18N
 10.1425 -        cmd.setExec (bu.getString ("EXEC_REM_STICKY"+osName));
 10.1426 -        cmd.setInput (""); // NOI18N
 10.1427 -        cmd.setTimeout (0);
 10.1428 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1429 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1430 -        cmd.setDoRefresh(true);
 10.1431 -        cmd.setRefreshRecursivelyPattern(" -R ");
 10.1432 -        cmd.setRefreshParent(false);
 10.1433 -        cmd.setCheckForModifications(true);
 10.1434 -        commands.add (cmd);
 10.1435 -
 10.1436 -
 10.1437 -        cmd= new UserCommand ();
 10.1438 -        cmd.setName ("DIFF"); // NOI18N
 10.1439 -        cmd.setAdvancedName(g("CMD_Diff_AN"));
 10.1440 -        cmd.setLabel (g("CMD_Diff")); // NOI18N
 10.1441 -        cmd.setExec (bu.getString ("EXEC_DIFF"));
 10.1442 -        cmd.setInput (""); // NOI18N
 10.1443 -        cmd.setTimeout (0);
 10.1444 -        cmd.setDataRegex (bu.getString ("REGEX_DIFF")); // NOI18N
 10.1445 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1446 -        commands.add (cmd);
 10.1447 -
 10.1448 -        cmd= new UserCommand ();
 10.1449 -        cmd.setName ("BRANCHES"); // NOI18N
 10.1450 -        cmd.setLabel (g("CMD_ViewBranches")); // NOI18N
 10.1451 -        cmd.setExec (bu.getString ("EXEC_BRANCHES"));
 10.1452 -        cmd.setInput (""); // NOI18N
 10.1453 -        cmd.setTimeout (0);
 10.1454 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1455 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1456 -        commands.add (cmd);
 10.1457 -
 10.1458 -        cmd= new UserCommand ();
 10.1459 -        cmd.setName ("REVISION_VIEW"); // NOI18N
 10.1460 -        cmd.setLabel (g("CMD_RevisionView")); // NOI18N
 10.1461 -        cmd.setExec (bu.getString ("EXEC_REVISION_VIEW"+osName));
 10.1462 -        cmd.setInput (""); // NOI18N
 10.1463 -        cmd.setTimeout (0);
 10.1464 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1465 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1466 -        commands.add (cmd);
 10.1467 -
 10.1468 -        cmd= new UserCommand ();
 10.1469 -        cmd.setName ("TAGS"); // NOI18N
 10.1470 -        cmd.setLabel (g("CMD_AddTag")); // NOI18N
 10.1471 -        cmd.setExec (bu.getString ("EXEC_ADD_TAG"+osName));
 10.1472 -        cmd.setInput (""); // NOI18N
 10.1473 -        cmd.setTimeout (0);
 10.1474 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1475 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1476 -        cmd.setChangingNumRevisions(true); // when I add a branch tag
 10.1477 -        cmd.setChangingRevision(true); // when add a tag to a revision
 10.1478 -        cmd.setChangedRevisionVariableName("REVISION_NAME");
 10.1479 -        commands.add (cmd);
 10.1480 -
 10.1481 -        cmd= new UserCommand ();
 10.1482 -        cmd.setName ("REVISION_UPDATE"); // NOI18N
 10.1483 -        cmd.setAdvancedName(g("CMD_Update_AN"));
 10.1484 -        cmd.setLabel (g("CMD_Update")); // NOI18N
 10.1485 -        cmd.setExec (bu.getString ("EXEC_REVISION_UPDATE"+osName));
 10.1486 -        cmd.setInput (""); // NOI18N
 10.1487 -        cmd.setTimeout (0);
 10.1488 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1489 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1490 -        cmd.setDoRefresh(true);
 10.1491 -        //cmd.setRefreshRecursivelyPattern(" -R ");
 10.1492 -        //cmd.setRefreshParent(false);
 10.1493 -        cmd.setCheckForModifications(true);
 10.1494 -        cmd.setNumRevisions(1);
 10.1495 -        commands.add (cmd);
 10.1496 -
 10.1497 -        cmd= new UserCommand ();
 10.1498 -        cmd.setName ("REVISION_MERGE"); // NOI18N
 10.1499 -        cmd.setAdvancedName(g("CMD_MergeRevisions_AN"));
 10.1500 -        cmd.setLabel (g("CMD_MergeRevisions")); // NOI18N
 10.1501 -        cmd.setExec (bu.getString ("EXEC_REVISION_MERGE"+osName));
 10.1502 -        cmd.setInput (""); // NOI18N
 10.1503 -        cmd.setTimeout (0);
 10.1504 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1505 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1506 -        cmd.setDoRefresh(true);
 10.1507 -        //cmd.setRefreshRecursivelyPattern(" -R ");
 10.1508 -        //cmd.setRefreshParent(false);
 10.1509 -        cmd.setCheckForModifications(true);
 10.1510 -        cmd.setNumRevisions(1);
 10.1511 -        commands.add (cmd);
 10.1512 -
 10.1513 -        cmd= new UserCommand ();
 10.1514 -        cmd.setName ("REVISION_MERGE2"); // NOI18N
 10.1515 -        cmd.setAdvancedName(g("CMD_MergeRevisions2_AN"));
 10.1516 -        cmd.setLabel (g("CMD_MergeRevisions2")); // NOI18N
 10.1517 -        cmd.setExec (bu.getString ("EXEC_REVISION_MERGE"+osName));
 10.1518 -        cmd.setInput (""); // NOI18N
 10.1519 -        cmd.setTimeout (0);
 10.1520 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1521 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1522 -        cmd.setDoRefresh(true);
 10.1523 -        //cmd.setRefreshRecursivelyPattern(" -R ");
 10.1524 -        //cmd.setRefreshParent(false);
 10.1525 -        cmd.setCheckForModifications(true);
 10.1526 -        cmd.setNumRevisions(2);
 10.1527 -        commands.add (cmd);
 10.1528 -
 10.1529 -        cmd= new UserCommand ();
 10.1530 -        cmd.setName ("REVISION_DIFF"); // NOI18N
 10.1531 -        cmd.setAdvancedName(g("CMD_Diff_AN"));
 10.1532 -        cmd.setLabel (g("CMD_Diff")); // NOI18N
 10.1533 -        cmd.setExec (bu.getString ("EXEC_REVISION_DIFF"));
 10.1534 -        cmd.setInput (""); // NOI18N
 10.1535 -        cmd.setTimeout (0);
 10.1536 -        cmd.setDataRegex (bu.getString ("REGEX_DIFF")); // NOI18N
 10.1537 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1538 -        cmd.setCheckForModifications(true);
 10.1539 -        cmd.setNumRevisions(1);
 10.1540 -        commands.add (cmd);
 10.1541 -
 10.1542 -        cmd= new UserCommand ();
 10.1543 -        cmd.setName ("REVISION_DIFF2"); // NOI18N
 10.1544 -        cmd.setAdvancedName(g("CMD_Diff_AN"));
 10.1545 -        cmd.setLabel (g("CMD_Diff")); // NOI18N
 10.1546 -        cmd.setExec (bu.getString ("EXEC_REVISION_DIFF"));
 10.1547 -        cmd.setInput (""); // NOI18N
 10.1548 -        cmd.setTimeout (0);
 10.1549 -        cmd.setDataRegex (bu.getString ("REGEX_DIFF")); // NOI18N
 10.1550 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1551 -        cmd.setCheckForModifications(true);
 10.1552 -        cmd.setNumRevisions(2);
 10.1553 -        commands.add (cmd);
 10.1554 -
 10.1555 -        cmd= new UserCommand ();
 10.1556 -        cmd.setName ("REVISION_OPEN"); // NOI18N
 10.1557 -        //cmd.setAdvancedName(g("CMD_Update_AN"));
 10.1558 -        cmd.setLabel (UserCommand.LABEL_NOT_SHOW); // NOI18N
 10.1559 -        cmd.setExec (bu.getString ("EXEC_REVISION_OPEN"+osName));
 10.1560 -        cmd.setInput (""); // NOI18N
 10.1561 -        cmd.setTimeout (0);
 10.1562 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1563 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1564 -        //cmd.setDoRefresh(true);
 10.1565 -        //cmd.setRefreshRecursivelyPattern(" -R ");
 10.1566 -        //cmd.setRefreshParent(false);
 10.1567 -        //cmd.setCheckForModifications(true);
 10.1568 -        cmd.setNumRevisions(1);
 10.1569 -        commands.add (cmd);
 10.1570 +        cmd.setDisplayName (null); // NOI18N
 10.1571 +        //cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_CheckOut_AN"));
 10.1572 +        //cmd.setDisplayName (cvsg("CMD_CheckOutModule")/*+moduleName*/); // NOI18N
 10.1573 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_CHECKOUT_MODULES"));
 10.1574 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
 10.1575 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
 10.1576 +        cmd.setProperty(VcsCommand.PROPERTY_DISPLAY_PLAIN_OUTPUT, new Boolean(true));
 10.1577 +        //cmd.setProperty(VcsCommand.PROPERTY_REFRESH_CURRENT_FOLDER, new Boolean(true));
 10.1578 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
 10.1579  
 10.1580          cmd= new UserCommand ();
 10.1581          cmd.setName ("LOGIN_CHECK"); // NOI18N
 10.1582 -        cmd.setLabel (""); // NOI18N
 10.1583 -        cmd.setExec (bu.getString ("EXEC_LOGIN_CHECK"+osName));
 10.1584 -        cmd.setInput (""); // NOI18N
 10.1585 -        cmd.setTimeout (0);
 10.1586 -        cmd.setDataRegex ("(.*$)"); // NOI18N
 10.1587 -        cmd.setErrorRegex ("(.*$)"); // NOI18N
 10.1588 -        commands.add (cmd);
 10.1589 +        cmd.setDisplayName (null); // NOI18N
 10.1590 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_LOGIN_CHECK"));
 10.1591 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, "(.*$)"); // NOI18N
 10.1592 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
 10.1593 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
 10.1594 +
 10.1595 +        cmd= new UserCommand ();
 10.1596 +        cmd.setName ("CHECKOUT_CMD"); // NOI18N
 10.1597 +        cmd.setDisplayName (null); // NOI18N
 10.1598 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_CHECKOUT_CMD"));
 10.1599 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
 10.1600 +
 10.1601 +        cmd= new UserCommand ();
 10.1602 +        cmd.setName ("DIFF_USR_CMD"); // NOI18N
 10.1603 +        cmd.setDisplayName (null); // NOI18N
 10.1604 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_DIFF_USR_CMD"));
 10.1605 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, bu.getString("REGEX_DIFF")); // NOI18N
 10.1606 +        cmd.setProperty(VcsCommand.PROPERTY_IGNORE_FAIL, new Boolean(true));
 10.1607 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
 10.1608 +
 10.1609 +        cmd= new UserCommand ();
 10.1610 +        cmd.setName ("DIFF_CMD"); // NOI18N
 10.1611 +        cmd.setDisplayName (null); // NOI18N
 10.1612 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_DIFF_CMD"));
 10.1613 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, bu.getString("REGEX_DIFF_CMD")); // NOI18N
 10.1614 +        cmd.setProperty(VcsCommand.PROPERTY_IGNORE_FAIL, new Boolean(true));
 10.1615 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
 10.1616 +
 10.1617 +        cmd= new UserCommand ();
 10.1618 +        cmd.setName ("LOG_INFO_CMD"); // NOI18N
 10.1619 +        cmd.setDisplayName (null); // NOI18N
 10.1620 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_LOG_INFO_CMD"));
 10.1621 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
 10.1622 +
 10.1623 +        cmd= new UserCommand ();
 10.1624 +        cmd.setName ("SELECTOR_REVISIONS"); // NOI18N
 10.1625 +        cmd.setDisplayName (null); // NOI18N
 10.1626 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_SELECTOR_REVISIONS"));
 10.1627 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
 10.1628 +
 10.1629 +        cmd= new UserCommand ();
 10.1630 +        cmd.setName ("SELECTOR_BRANCHES"); // NOI18N
 10.1631 +        cmd.setDisplayName (null); // NOI18N
 10.1632 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_SELECTOR_BRANCHES"));
 10.1633 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
 10.1634 +
 10.1635 +        cmd= new UserCommand ();
 10.1636 +        cmd.setName ("SELECTOR_MODULES"); // NOI18N
 10.1637 +        cmd.setDisplayName (null); // NOI18N
 10.1638 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_SELECTOR_MODULES"));
 10.1639 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
 10.1640 +
 10.1641 +        cmd= new UserCommand ();
 10.1642 +        cmd.setName ("CHECKOUT_MODULES_S_CMD"); // NOI18N
 10.1643 +        cmd.setDisplayName (null); // NOI18N
 10.1644 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_CHECKOUT_MODULES_S_CMD"));
 10.1645 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
 10.1646 +
 10.1647 +        cmd= new UserCommand ();
 10.1648 +        cmd.setName ("CHECKOUT_MODULES_C_CMD"); // NOI18N
 10.1649 +        cmd.setDisplayName (null); // NOI18N
 10.1650 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_CHECKOUT_MODULES_C_CMD"));
 10.1651 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
 10.1652 +
 10.1653 +        cmd= new UserCommand ();
 10.1654 +        cmd.setName ("WATCH_ACTION_STATUS"); // NOI18N
 10.1655 +        cmd.setDisplayName (null); // NOI18N
 10.1656 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_WATCH_ACTION_STATUS"));
 10.1657 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
 10.1658 +
 10.1659 +        cmd= new UserCommand ();
 10.1660 +        cmd.setName ("WATCHERS_LIST"); // NOI18N
 10.1661 +        cmd.setDisplayName (null); // NOI18N
 10.1662 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_WATCHERS_LIST"));
 10.1663 +        mainChildren.add (new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
 10.1664  
 10.1665          D.deb("cmd last = "+cmd);
 10.1666  
 10.1667 -        setCommands (commands);
 10.1668 +        cmd= new UserCommand ();
 10.1669 +        cmd.setName ("CUSTOMIZER_LAUNCH"); // NOI18N
 10.1670 +        //cmd.setProperty(VcsCommand.PROPERTY_ADVANCED_NAME, cvsg("CMD_Diff_AN"));
 10.1671 +        cmd.setDisplayName (cvsg("CMD_CustomizerLaunch")); // NOI18N
 10.1672 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, bu.getString ("EXEC_CUSTOMIZER_COMMAND"));
 10.1673 +        //cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, bu.getString ("REGEX_DIFF")); // NOI18N
 10.1674 +        //cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, "(.*$)"); // NOI18N
 10.1675 +        cmd.setProperty(VcsCommand.PROPERTY_ON_FILE, new Boolean(false));
 10.1676 +        cmd.setProperty(VcsCommand.PROPERTY_ON_DIR, new Boolean(false));
 10.1677 +        cmd.setProperty(VcsCommand.PROPERTY_ON_ROOT, new Boolean(true));
 10.1678 +        children.add(new VcsCommandNode[] { new VcsCommandNode(Children.LEAF, cmd) });
 10.1679 +
 10.1680 +        setCommands (cvsCommands);
 10.1681          
 10.1682 -        if (getUserParams() == null) setUserParamsLabels(new String[] { g("CTL_GlobalUserParamsLabel") });
 10.1683 -        setUserLocalParamsLabels(new String[] { g("CTL_CommandUserParamsLabel"), g("CTL_CommandUserParamsLabelImport"), g("CTL_CommandUserParamsLabelCheckout") });
 10.1684 -        cmd = getCommand("COMMIT");
 10.1685 -        cmd.setExecutePreCommands(isExecutePreCommit());
 10.1686 +        if (getUserParams() == null) setUserParamsLabels(new String[] { cvsg("CTL_GlobalUserParamsLabel") });
 10.1687 +        setUserLocalParamsLabels(new String[] { cvsg("CTL_CommandUserParamsLabel"), cvsg("CTL_CommandUserParamsLabelImport"), cvsg("CTL_CommandUserParamsLabelCheckout") });
 10.1688 +        //cmd = getCommand("COMMIT");
 10.1689 +        //cmd.setExecutePreCommands(isExecutePreCommit());
 10.1690          D.deb("initCommands done.");
 10.1691      }
 10.1692  
 10.1693      /**
 10.1694 +     * Get the full file path where cache information should be stored.
 10.1695 +     */
 10.1696 +    public String getCacheFileName(String path) {
 10.1697 +        return getFile(path + File.separator + CACHE_FILE_FOLDER + File.separator + CACHE_FILE_NAME).getAbsolutePath();
 10.1698 +    }
 10.1699 +    
 10.1700 +    /**
 10.1701       * Allows some cleanup of the document which the user is asked for.
 10.1702       * In CVS all lines beginning with CVS: have to be removed.
 10.1703       * doc The Document
 10.1704 @@ -1241,10 +1346,10 @@
 10.1705        return !isCVSRoot(directory);
 10.1706      }
 10.1707      
 10.1708 -    /**
 10.1709 +    /*
 10.1710       * Add the root directory to the cache. This prevents LIST command to be run and fail
 10.1711       * when the local directory structure was not checked out by cvs.
 10.1712 -     */
 10.1713 +     *
 10.1714      private void addRootToCache() {
 10.1715          VcsDir dir = cache.getDir("");
 10.1716          if (dir == null || (!dir.isLoaded() && !dir.isLocal())) {
 10.1717 @@ -1255,6 +1360,7 @@
 10.1718              cache.readDirFinished(dir, new Vector(0), false);
 10.1719          }
 10.1720      }
 10.1721 +     */
 10.1722  
 10.1723      /* Scans children for given name
 10.1724       */
 10.1725 @@ -1266,13 +1372,13 @@
 10.1726                      javax.swing.SwingUtilities.invokeLater(new Runnable() {
 10.1727                                                                 public void run() {
 10.1728                                                                     TopManager.getDefault ().notify (new NotifyDescriptor.Message (
 10.1729 -                                                                                                        g("DLG_CVS_NeedToCheckOutFirst"), NotifyDescriptor.Message.INFORMATION_MESSAGE));
 10.1730 +                                                                                                        cvsg("DLG_CVS_NeedToCheckOutFirst"), NotifyDescriptor.Message.INFORMATION_MESSAGE));
 10.1731                                                                     //needToCheckoutInvoked = false; -- will appear only once to prevent disturbing users
 10.1732                                                                 }
 10.1733                                                             });
 10.1734                      needToCheckoutInvoked = true;
 10.1735                  }
 10.1736 -                addRootToCache();
 10.1737 +                //addRootToCache();
 10.1738                  /*
 10.1739                  if (cache.isDir(name)) {
 10.1740                      String[] vcsFiles = null;
 10.1741 @@ -1347,79 +1453,12 @@
 10.1742          }
 10.1743      }
 10.1744  
 10.1745 -    protected String g(String s) {
 10.1746 -        D.deb("getting: "+s);
 10.1747 -        return NbBundle.getBundle
 10.1748 -               ("org.netbeans.modules.vcs.cmdline.BundleCVS").getString (s);
 10.1749 +    private String cvsg(String s) {
 10.1750 +        //D.deb("getting: "+s);
 10.1751 +        return NbBundle.getBundle(CvsFileSystem.class).getString(s);
 10.1752 +        //       ("org.netbeans.modules.vcs.cmdline.BundleCVS").getString (s);
 10.1753      }
 10.1754  
 10.1755  
 10.1756  }
 10.1757  
 10.1758 -/*
 10.1759 - * Log
 10.1760 - *  47   Jaga      1.42.1.3    3/21/00  Martin Entlicher Module commands changed.
 10.1761 - *  46   Jaga      1.42.1.2    3/9/00   Martin Entlicher New variable 
 10.1762 - *       CVS_REPOSITORY added
 10.1763 - *  45   Jaga      1.42.1.1    3/8/00   Martin Entlicher New commands added, 
 10.1764 - *       Recursive Refresh added.
 10.1765 - *  44   Jaga      1.42.1.0    2/24/00  Martin Entlicher Remember the last state,
 10.1766 - *       module commands added.
 10.1767 - *  43   Gandalf   1.42        2/11/00  Martin Entlicher 
 10.1768 - *  42   Gandalf   1.41        2/10/00  Martin Entlicher Warning of nonexistent 
 10.1769 - *       directories when mounted.
 10.1770 - *  41   Gandalf   1.40        2/10/00  Martin Entlicher Fix a problem in setting
 10.1771 - *       the PS variable.
 10.1772 - *  40   Gandalf   1.39        2/9/00   Martin Entlicher A small fix of variables
 10.1773 - *       CVS_EXE and PS.
 10.1774 - *  39   Gandalf   1.38        2/8/00   Martin Entlicher Fixed path to cvs.exe 
 10.1775 - *       when using CygWIN and command loading changed.
 10.1776 - *  38   Gandalf   1.37        1/17/00  Martin Entlicher 
 10.1777 - *  37   Gandalf   1.36        1/15/00  Ian Formanek    NOI18N
 10.1778 - *  36   Gandalf   1.35        1/6/00   Martin Entlicher 
 10.1779 - *  35   Gandalf   1.34        1/5/00   Martin Entlicher 
 10.1780 - *  34   Gandalf   1.33        12/29/99 Martin Entlicher Path to CygWIN bin 
 10.1781 - *       directory added and timeouts changed.  
 10.1782 - *  33   Gandalf   1.32        12/21/99 Martin Entlicher Set the refresh time 
 10.1783 - *       after mounting into the Repository, added support for Cygwin and new 
 10.1784 - *       variables.
 10.1785 - *  32   Gandalf   1.31        12/14/99 Martin Entlicher Timeouts changed
 10.1786 - *  31   Gandalf   1.30        12/8/99  Martin Entlicher Added MODPATH variable, 
 10.1787 - *       MODULE does not contain the last File.separator.
 10.1788 - *  30   Gandalf   1.29        12/2/99  Martin Entlicher 
 10.1789 - *  29   Gandalf   1.28        11/30/99 Martin Entlicher 
 10.1790 - *  28   Gandalf   1.27        11/27/99 Patrik Knakal   
 10.1791 - *  27   Gandalf   1.26        11/24/99 Martin Entlicher 
 10.1792 - *  26   Gandalf   1.25        11/23/99 Martin Entlicher Several new commands 
 10.1793 - *       added.
 10.1794 - *  25   Gandalf   1.24        11/10/99 Martin Entlicher Changed for better 
 10.1795 - *       listing of local files
 10.1796 - *  24   Gandalf   1.23        11/9/99  Martin Entlicher 
 10.1797 - *  23   Gandalf   1.22        11/4/99  Martin Entlicher 
 10.1798 - *  22   Gandalf   1.21        11/2/99  Martin Entlicher 
 10.1799 - *  21   Gandalf   1.20        11/2/99  Martin Entlicher 
 10.1800 - *  20   Gandalf   1.19        10/26/99 Martin Entlicher 
 10.1801 - *  19   Gandalf   1.18        10/26/99 Martin Entlicher 
 10.1802 - *  18   Gandalf   1.17        10/25/99 Pavel Buzek     
 10.1803 - *  17   Gandalf   1.16        10/25/99 Pavel Buzek     
 10.1804 - *  16   Gandalf   1.15        10/23/99 Ian Formanek    NO SEMANTIC CHANGE - Sun
 10.1805 - *       Microsystems Copyright in File Comment
 10.1806 - *  15   Gandalf   1.14        10/13/99 Martin Entlicher 
 10.1807 - *  14   Gandalf   1.13        10/13/99 Pavel Buzek     
 10.1808 - *  13   Gandalf   1.12        10/13/99 Pavel Buzek     commands added
 10.1809 - *  12   Gandalf   1.11        10/13/99 Martin Entlicher variable MODULE_S added
 10.1810 - *  11   Gandalf   1.10        10/12/99 Pavel Buzek     
 10.1811 - *  10   Gandalf   1.9         10/10/99 Pavel Buzek     
 10.1812 - *  9    Gandalf   1.8         10/9/99  Pavel Buzek     
 10.1813 - *  8    Gandalf   1.7         10/9/99  Pavel Buzek     
 10.1814 - *  7    Gandalf   1.6         10/8/99  Pavel Buzek     
 10.1815 - *  6    Gandalf   1.5         10/7/99  Martin Entlicher Added DIFF and UNIX 
 10.1816 - *       commands
 10.1817 - *  5    Gandalf   1.4         10/7/99  Pavel Buzek     
 10.1818 - *  4    Gandalf   1.3         10/7/99  Pavel Buzek     
 10.1819 - *  3    Gandalf   1.2         10/7/99  Pavel Buzek     
 10.1820 - *  2    Gandalf   1.1         10/5/99  Pavel Buzek     VCS at least can be 
 10.1821 - *       mounted
 10.1822 - *  1    Gandalf   1.0         9/30/99  Pavel Buzek     
 10.1823 - * $
 10.1824 - */
    11.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/CvsFileSystemBeanInfo.java	Mon Jan 22 13:24:46 2001 +0000
    11.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/CvsFileSystemBeanInfo.java	Mon Jan 22 20:58:06 2001 +0000
    11.3 @@ -12,22 +12,25 @@
    11.4   */
    11.5  
    11.6  package org.netbeans.modules.vcs.cmdline;
    11.7 +
    11.8  import java.beans.*;
    11.9  import java.util.ResourceBundle;
   11.10  
   11.11  import org.openide.util.NbBundle;
   11.12  import org.openide.filesystems.*;
   11.13 -import org.netbeans.modules.vcs.util.*;
   11.14 +
   11.15 +import org.netbeans.modules.vcscore.settings.VcsSettings;
   11.16 +import org.netbeans.modules.vcscore.settings.RefreshModePropertyEditor;
   11.17  
   11.18  /** BeanInfo for CommandLineVcsFileSystem.
   11.19   * 
   11.20 - * @author Pavel Buzek
   11.21 + * @author Pavel Buzek, Martin Entlicher
   11.22   */
   11.23  
   11.24  //-------------------------------------------
   11.25  public class CvsFileSystemBeanInfo extends SimpleBeanInfo {
   11.26 -    private static Debug E=new Debug("CvsFileSystemBeanInfo", true); // NOI18N
   11.27 -    private static Debug D=E;
   11.28 +    //private static Debug E=new Debug("CvsFileSystemBeanInfo", true); // NOI18N
   11.29 +    //private static Debug D=E;
   11.30  
   11.31      /** Array of property descriptors. */
   11.32      private static PropertyDescriptor[] desc;
   11.33 @@ -42,10 +45,12 @@
   11.34          PropertyDescriptor lock=null;
   11.35          PropertyDescriptor lockPrompt=null;
   11.36          PropertyDescriptor edit = null;
   11.37 -        PropertyDescriptor executePreCommit = null;
   11.38 +        //PropertyDescriptor executePreCommit = null;
   11.39          PropertyDescriptor acceptUserParams = null;
   11.40          PropertyDescriptor runRefreshCommand = null;
   11.41          PropertyDescriptor processAllFiles = null;
   11.42 +        PropertyDescriptor annotationPattern = null;
   11.43 +        PropertyDescriptor autoRefresh = null;
   11.44  
   11.45          try {
   11.46              rootDirectory=new PropertyDescriptor
   11.47 @@ -58,21 +63,30 @@
   11.48                         ("lockPrompt",CvsFileSystem.class,"isPromptForLockOn","setPromptForLockOn"); // NOI18N
   11.49              edit = new PropertyDescriptor
   11.50                     ("edit", CvsFileSystem.class, "isCallEditFilesOn", "setCallEditFilesOn"); // NOI18N
   11.51 +            /*
   11.52              executePreCommit = new PropertyDescriptor
   11.53                                 ("executePreCommit", CvsFileSystem.class, "isExecutePreCommit", "setExecutePreCommit"); // NOI18N
   11.54 +             */
   11.55              acceptUserParams = new PropertyDescriptor
   11.56                                 ("acceptUserParams", CvsFileSystem.class, "isAcceptUserParams", "setAcceptUserParams"); // NOI18N
   11.57              runRefreshCommand = new PropertyDescriptor
   11.58 -                               ("doCommandRefresh", CvsFileSystem.class, "isDoCommandRefresh", "setDoCommandRefresh"); // NOI18N
   11.59 +                               ("offLine", CvsFileSystem.class, "isOffLine", "setOffLine"); // NOI18N
   11.60              processAllFiles = new PropertyDescriptor
   11.61                                 ("processUnimportantFiles", CvsFileSystem.class, "isProcessUnimportantFiles", "setProcessUnimportantFiles"); // NOI18N
   11.62 +            annotationPattern = new PropertyDescriptor
   11.63 +                               ("annotationPattern", CvsFileSystem.class, "getAnnotationPattern", "setAnnotationPattern"); // NOI18N
   11.64 +            autoRefresh = new PropertyDescriptor
   11.65 +                               ("autoRefresh", CvsFileSystem.class, "getAutoRefresh", "setAutoRefresh"); // NOI18N
   11.66 +            autoRefresh.setPropertyEditorClass(RefreshModePropertyEditor.class);
   11.67              
   11.68              desc = new PropertyDescriptor[] {
   11.69 -                       rootDirectory, debug, lock, lockPrompt, edit, executePreCommit, acceptUserParams, runRefreshCommand, processAllFiles
   11.70 +                       rootDirectory, debug, lock, lockPrompt, edit, acceptUserParams,
   11.71 +                       runRefreshCommand, processAllFiles, annotationPattern, autoRefresh
   11.72                     };
   11.73  
   11.74 -            ResourceBundle bundle = NbBundle.getBundle
   11.75 -                                    ("org.netbeans.modules.vcs.cmdline.Bundle"); // NOI18N
   11.76 +            ResourceBundle bundle = NbBundle.getBundle (CvsFileSystemBeanInfo.class);
   11.77 +            ResourceBundle bundleSettings = NbBundle.getBundle (VcsSettings.class);
   11.78 +            
   11.79              rootDirectory.setDisplayName      (bundle.getString("PROP_rootDirectory"));
   11.80              rootDirectory.setShortDescription (bundle.getString("HINT_rootDirectory"));
   11.81              debug.setDisplayName              (bundle.getString("PROP_debug"));
   11.82 @@ -83,14 +97,18 @@
   11.83              lockPrompt.setShortDescription    (bundle.getString("HINT_lockPrompt"));
   11.84              edit.setDisplayName               (bundle.getString("PROP_edit"));
   11.85              edit.setShortDescription          (bundle.getString("HINT_edit"));
   11.86 -            executePreCommit.setDisplayName   (bundle.getString("PROP_executePreCommit"));
   11.87 -            executePreCommit.setShortDescription(bundle.getString("HINT_executePreCommit"));
   11.88 +            //executePreCommit.setDisplayName   (bundle.getString("PROP_executePreCommit"));
   11.89 +            //executePreCommit.setShortDescription(bundle.getString("HINT_executePreCommit"));
   11.90              acceptUserParams.setDisplayName   (bundle.getString("PROP_acceptUserParams"));
   11.91              acceptUserParams.setShortDescription(bundle.getString("HINT_acceptUserParams"));
   11.92 -            runRefreshCommand.setDisplayName  (bundle.getString("PROP_runRefreshCommand"));
   11.93 -            runRefreshCommand.setShortDescription(bundle.getString("HINT_runRefreshCommand"));
   11.94 +            runRefreshCommand.setDisplayName  (bundleSettings.getString("PROP_offline"));
   11.95 +            runRefreshCommand.setShortDescription(bundleSettings.getString("HINT_offline"));
   11.96              processAllFiles.setDisplayName    (bundle.getString("PROP_processAllFiles"));
   11.97              processAllFiles.setShortDescription(bundle.getString("HINT_processAllFiles"));
   11.98 +            annotationPattern.setDisplayName  (bundle.getString("PROP_annotationPattern"));
   11.99 +            annotationPattern.setShortDescription(bundle.getString("HINT_annotationPattern"));
  11.100 +            autoRefresh.setDisplayName        (bundleSettings.getString("PROP_autoRefresh"));
  11.101 +            autoRefresh.setShortDescription   (bundleSettings.getString("HINT_autoRefresh"));
  11.102  
  11.103          } catch (IntrospectionException ex) {
  11.104              ex.printStackTrace ();
  11.105 @@ -118,7 +136,7 @@
  11.106  
  11.107  
  11.108      public BeanDescriptor getBeanDescriptor(){
  11.109 -        D.deb("getBeanDescriptor()"); // NOI18N
  11.110 +        //D.deb("getBeanDescriptor()"); // NOI18N
  11.111          return new BeanDescriptor(CvsFileSystem.class, org.netbeans.modules.vcs.cmdline.NewCvsCustomizer.class);
  11.112      }
  11.113  
    12.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/NewCvsCustomizer.java	Mon Jan 22 13:24:46 2001 +0000
    12.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/NewCvsCustomizer.java	Mon Jan 22 20:58:06 2001 +0000
    12.3 @@ -12,6 +12,7 @@
    12.4   */
    12.5  
    12.6  package org.netbeans.modules.vcs.cmdline;
    12.7 +
    12.8  import java.io.*;
    12.9  import java.util.*;
   12.10  import java.beans.*;
   12.11 @@ -20,15 +21,14 @@
   12.12  import java.awt.event.*;
   12.13  import javax.swing.*;
   12.14  import javax.swing.border.*;
   12.15 +import javax.swing.event.*;
   12.16  
   12.17  import org.openide.*;
   12.18  import org.openide.util.*;
   12.19  
   12.20 -import org.netbeans.modules.vcs.*;
   12.21 -import org.netbeans.modules.vcs.util.*;
   12.22 +import org.netbeans.modules.vcscore.*;
   12.23 +import org.netbeans.modules.vcscore.util.*;
   12.24  import org.netbeans.modules.vcs.cmdline.passwd.*;
   12.25 -import javax.swing.event.ChangeListener;
   12.26 -import javax.swing.event.*;
   12.27  
   12.28  
   12.29  /** The CVS filesystem customizer. Descends from WizardDescriptor and implements the Customizer interface.
   12.30 @@ -450,14 +450,14 @@
   12.31                    boolean [] loginCancelled = new boolean[1];
   12.32                    if (!((Cust2ServerPanel)iterPanel.current()).isLoggedIn(loginCancelled)) {
   12.33                        if (!loginCancelled[0]) {
   12.34 -                          fileSystem.setDoCommandRefresh(false);
   12.35 +                          fileSystem.setOffLine(true);
   12.36                        } else {
   12.37                            return;
   12.38                        }
   12.39                    }
   12.40                  }
   12.41                  applyChanges();
   12.42 -                fileSystem.getCache().refreshDirFromDiskCache("");
   12.43 +                fileSystem.getCacheProvider().refreshDirFromDiskCache(fileSystem.getFile(""));
   12.44                  org.openide.TopManager.getDefault ().getRepository ().addFileSystem (fileSystem);
   12.45              }
   12.46                 if (iterPanel.current() instanceof Cust3CheckoutPanel) {
    13.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/Bundle.properties	Mon Jan 22 13:24:46 2001 +0000
    13.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/Bundle.properties	Mon Jan 22 20:58:06 2001 +0000
    13.3 @@ -13,18 +13,6 @@
    13.4  
    13.5  
    13.6  # Sample ResourceBundle properties file
    13.7 -AddTagDialog.rTagRadioButton.text=Release Tag
    13.8 -AddTagDialog.bTagRadioButton.text=Branch Tag
    13.9 -AddTagDialog.rTagCheckBox.text=Repository Tag
   13.10 -AddTagDialog.revLabel.text=On Revision
   13.11 -AddTagDialog.tagLabel.text=Tag Name
   13.12 -AddTagDialog.okButton.text=OK
   13.13 -AddTagDialog.cancelButton.text=Cancel
   13.14 -AddTagDialog.title=Add Tag
   13.15 -AddTagDialog.file.title=Add Tag to {0}
   13.16 -AddTagDialog.CVSHead=CVS Head
   13.17 -AddTag.tooFewArgs=Too few arguments to Add Tag command.
   13.18 -
   13.19  CvsBranchFrame.revALabel.text=Revision A
   13.20  CvsBranchFrame.revBLabel.text=Revision B
   13.21  CvsBranchFrame.diffButton.text=Diff
   13.22 @@ -44,13 +32,6 @@
   13.23  CvsRevisionChooser.cancelButton.text=Cancel
   13.24  CvsRevisionChooser.infoLabel.text=Command On Revision
   13.25  
   13.26 -CvsWatchDialog.title=Set Watch
   13.27 -CvsWatchDialog.file.title=Set Watch on {0}
   13.28 -CvsWatchDialog.jButton1.text=OK
   13.29 -CvsWatchDialog.jButton2.text=Cancel
   13.30 -CvsWatchDialog.watchLabel.text=Choose the watch actions to add\:
   13.31 -CvsWatchDialog.recursiveCheckBox.text=Add watch recursively
   13.32 -
   13.33  CvsModuleSelectorDialog.okButton.text=OK
   13.34  CvsModuleSelectorDialog.cancelButton.text=Cancel
   13.35  CvsModuleSelectorDialog.noModules=There are no modules available.
    14.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsBranches.java	Mon Jan 22 13:24:46 2001 +0000
    14.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsBranches.java	Mon Jan 22 20:58:06 2001 +0000
    14.3 @@ -13,11 +13,14 @@
    14.4  
    14.5  package org.netbeans.modules.vcs.cmdline.commands;
    14.6  
    14.7 -import org.netbeans.modules.vcs.cmdline.*;
    14.8 -import org.netbeans.modules.vcs.util.*;
    14.9 -import org.netbeans.modules.vcs.cmdline.exec.*;
   14.10  import java.util.*;
   14.11  
   14.12 +import org.netbeans.modules.vcscore.VcsFileSystem;
   14.13 +import org.netbeans.modules.vcscore.commands.CommandOutputListener;
   14.14 +import org.netbeans.modules.vcscore.commands.CommandDataOutputListener;
   14.15 +import org.netbeans.modules.vcscore.cmdline.*;
   14.16 +import org.netbeans.modules.vcscore.util.*;
   14.17 +
   14.18  /**
   14.19   *
   14.20   * @author  Martin Entlicher
   14.21 @@ -30,12 +33,13 @@
   14.22      Hashtable vars = null;
   14.23      CvsLogInfo logInfo = new CvsLogInfo();
   14.24      private String[] diffArgs = null;
   14.25 -    private NoRegexListener stdoutNRListener = null;
   14.26 -    private NoRegexListener stderrNRListener = null;
   14.27 -    private RegexListener stdoutListener = null;
   14.28 -    private RegexListener stderrListener = null;
   14.29 +    private CommandOutputListener stdoutNRListener = null;
   14.30 +    private CommandOutputListener stderrNRListener = null;
   14.31 +    private CommandDataOutputListener stdoutListener = null;
   14.32 +    private CommandDataOutputListener stderrListener = null;
   14.33      private String dataRegex = null;
   14.34      private String errorRegex = null;
   14.35 +    private VcsFileSystem fileSystem = null;
   14.36  
   14.37      Hashtable branchPositions = null;
   14.38      int graphHeight = 0;
   14.39 @@ -46,6 +50,11 @@
   14.40      public CvsBranches() {
   14.41      }
   14.42  
   14.43 +    public void setFileSystem(VcsFileSystem fileSystem) {
   14.44 +        this.logInfo.setFileSystem(fileSystem);
   14.45 +        this.fileSystem = fileSystem;
   14.46 +    }
   14.47 +
   14.48      /**
   14.49       * Calculates the positions of branches and the number of elements along x and y axis.
   14.50       */
   14.51 @@ -122,7 +131,7 @@
   14.52          //logInfo.getRevisionGraph();
   14.53          computeBranchesPositions();
   14.54          CvsBranchFrame branchFrame = new CvsBranchFrame(logInfo, this);
   14.55 -        MiscStuff.centerWindow(branchFrame);
   14.56 +        VcsUtilities.centerWindow(branchFrame);
   14.57          branchFrame.setPositions(graphWidth, graphHeight, branchPositions);
   14.58          branchFrame.setVisible(true);
   14.59          //logInfo.getRevisionGraph().getRoot().print();
   14.60 @@ -141,7 +150,7 @@
   14.61              args[0] = revision1;
   14.62          } else args = new String[3];
   14.63          args[args.length - 3] = "0"; // The output specification
   14.64 -        for(int i = 1; i < 3; i++) args[i + args.length - 3] = diffArgs[i - 1];
   14.65 +        for(int i = 0; i < 2; i++) args[i + args.length - 2] = diffArgs[i];
   14.66          return diff.exec(vars, args, stdoutNRListener, stderrNRListener,
   14.67                           stdoutListener, dataRegex, stderrListener, errorRegex);
   14.68      }
   14.69 @@ -154,9 +163,9 @@
   14.70      }
   14.71  
   14.72      public boolean exec(Hashtable vars, String[] args,
   14.73 -                        NoRegexListener stdoutNRListener, NoRegexListener stderrNRListener,
   14.74 -                        RegexListener stdoutListener, String dataRegex,
   14.75 -                        RegexListener stderrListener, String errorRegex) {
   14.76 +                        CommandOutputListener stdoutNRListener, CommandOutputListener stderrNRListener,
   14.77 +                        CommandDataOutputListener stdoutListener, String dataRegex,
   14.78 +                        CommandDataOutputListener stderrListener, String errorRegex) {
   14.79          this.vars = vars;
   14.80          this.stdoutNRListener = stdoutNRListener;
   14.81          this.stderrNRListener = stderrNRListener;
   14.82 @@ -169,16 +178,16 @@
   14.83          if (args.length < 3) {
   14.84              String message = "Too few arguments to View Branches command !"; // NOI18N
   14.85              String[] elements = { message };
   14.86 -            if (stderrListener != null) stderrListener.match(elements);
   14.87 -            if (stderrNRListener != null) stderrNRListener.match(message);
   14.88 +            if (stderrListener != null) stderrListener.outputData(elements);
   14.89 +            if (stderrNRListener != null) stderrNRListener.outputLine(message);
   14.90              return false;
   14.91          }
   14.92 -        String[] logInfoArgs = new String[1];
   14.93 -        logInfoArgs[0] = args[0];
   14.94 +        String logInfoArg = args[0];
   14.95 +        //logInfoArgs[0] = args[0];
   14.96          diffArgs = new String[2];
   14.97          diffArgs[0] = args[1];
   14.98          diffArgs[1] = args[2];
   14.99 -        success = this.logInfo.updateLogInfo(vars, logInfoArgs, stdoutNRListener, stderrNRListener);
  14.100 +        success = this.logInfo.updateLogInfo(vars, logInfoArg, stdoutNRListener, stderrNRListener);
  14.101          if (success) {
  14.102              drawBranches();
  14.103          }
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsCustomizerCommand.java	Mon Jan 22 20:58:06 2001 +0000
    15.3 @@ -0,0 +1,49 @@
    15.4 +/*
    15.5 + *                 Sun Public License Notice
    15.6 + * 
    15.7 + * The contents of this file are subject to the Sun Public License
    15.8 + * Version 1.0 (the "License"). You may not use this file except in
    15.9 + * compliance with the License. A copy of the License is available at
   15.10 + * http://www.sun.com/
   15.11 + * 
   15.12 + * The Original Code is NetBeans. The Initial Developer of the Original
   15.13 + * Code is Sun Microsystems, Inc. Portions Copyright 1997-2000 Sun
   15.14 + * Microsystems, Inc. All Rights Reserved.
   15.15 + */
   15.16 +
   15.17 +package org.netbeans.modules.vcs.cmdline.commands;
   15.18 +
   15.19 +import java.util.Hashtable;
   15.20 +
   15.21 +import org.netbeans.modules.vcscore.VcsFileSystem;
   15.22 +import org.netbeans.modules.vcscore.commands.*;
   15.23 +import org.netbeans.modules.vcscore.cmdline.VcsAdditionalCommand;
   15.24 +
   15.25 +import org.netbeans.modules.vcs.cmdline.CvsCustomizer;
   15.26 +
   15.27 +/**
   15.28 + * This command invokes the customizer of the CVS filesystem.
   15.29 + * @author  Martin Entlicher
   15.30 + */
   15.31 +public class CvsCustomizerCommand implements VcsAdditionalCommand {
   15.32 +
   15.33 +    private VcsFileSystem fileSystem = null;
   15.34 +
   15.35 +    /** Creates new CvsCustomizer */
   15.36 +    public CvsCustomizerCommand() {
   15.37 +    }
   15.38 +
   15.39 +    public void setFileSystem(VcsFileSystem fileSystem) {
   15.40 +        this.fileSystem = fileSystem;
   15.41 +    }
   15.42 +
   15.43 +    public boolean exec(Hashtable vars, String[] args,
   15.44 +                        CommandOutputListener stdoutNRListener, CommandOutputListener stderrNRListener,
   15.45 +                        CommandDataOutputListener stdoutListener, String dataRegex,
   15.46 +                        CommandDataOutputListener stderrListener, String errorRegex) {
   15.47 +        CvsCustomizer cust = new CvsCustomizer();
   15.48 +        cust.setObject(fileSystem);
   15.49 +        cust.show();
   15.50 +        return true;
   15.51 +    }
   15.52 +}
    16.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsDiff.java	Mon Jan 22 13:24:46 2001 +0000
    16.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsDiff.java	Mon Jan 22 20:58:06 2001 +0000
    16.3 @@ -13,8 +13,9 @@
    16.4  
    16.5  package org.netbeans.modules.vcs.cmdline.commands;
    16.6  
    16.7 -import org.netbeans.modules.vcs.util.*;
    16.8 -import org.netbeans.modules.vcs.cmdline.diff.*;
    16.9 +import org.netbeans.modules.vcscore.VcsFileSystem;
   16.10 +import org.netbeans.modules.vcscore.util.*;
   16.11 +import org.netbeans.modules.vcscore.cmdline.diff.*;
   16.12  
   16.13  /**
   16.14   * The diff wrapper class, that collects output of cvs diff command and creates
   16.15 @@ -35,7 +36,13 @@
   16.16          setBundle(org.openide.util.NbBundle.getBundle(CvsDiff.class));
   16.17      }
   16.18  
   16.19 -    public void match(String[] elements) {
   16.20 +    /** Set the VCS file system to use to execute commands.
   16.21 +     */
   16.22 +    public void setFileSystem(VcsFileSystem fileSystem) {
   16.23 +        super.setFileSystem(fileSystem);
   16.24 +    }
   16.25 +
   16.26 +    public void outputData(String[] elements) {
   16.27          //diffBuffer.append(elements[0]+"\n"); // NOI18N
   16.28          D.deb("diff match: "+elements[0]); // NOI18N
   16.29          //System.out.println("diff match: "+elements[0]); // NOI18N
   16.30 @@ -65,7 +72,7 @@
   16.31              } catch (NumberFormatException e) {
   16.32                  if (this.stderrListener != null) {
   16.33                      String[] debugOut = { "NumberFormatException "+e.getMessage() }; // NOI18N
   16.34 -                    stderrListener.match(debugOut);
   16.35 +                    stderrListener.outputData(debugOut);
   16.36                  }
   16.37                  E.deb("NumberFormatException "+e.getMessage()); // NOI18N
   16.38                  return;
   16.39 @@ -94,7 +101,7 @@
   16.40              } catch (NumberFormatException e) {
   16.41                  if (this.stderrListener != null) {
   16.42                      String[] debugOut = { "NumberFormatException "+e.getMessage() }; // NOI18N
   16.43 -                    stderrListener.match(debugOut);
   16.44 +                    stderrListener.outputData(debugOut);
   16.45                  }
   16.46                  E.deb("NumberFormatException "+e.getMessage()); // NOI18N
   16.47                  return;
   16.48 @@ -135,7 +142,7 @@
   16.49              } catch (NumberFormatException e) {
   16.50                  if (this.stderrListener != null) {
   16.51                      String[] debugOut = { "NumberFormatException "+e.getMessage() }; // NOI18N
   16.52 -                    stderrListener.match(debugOut);
   16.53 +                    stderrListener.outputData(debugOut);
   16.54                  }
   16.55                  E.deb("NumberFormatException "+e.getMessage()); // NOI18N
   16.56                  return;
    17.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsLogInfo.java	Mon Jan 22 13:24:46 2001 +0000
    17.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsLogInfo.java	Mon Jan 22 20:58:06 2001 +0000
    17.3 @@ -13,18 +13,21 @@
    17.4  
    17.5  package org.netbeans.modules.vcs.cmdline.commands;
    17.6  
    17.7 -import org.netbeans.modules.vcs.cmdline.*;
    17.8 -import org.netbeans.modules.vcs.VcsFileSystem;
    17.9 -import org.netbeans.modules.vcs.util.*;
   17.10 -import org.netbeans.modules.vcs.cmdline.exec.*;
   17.11  import java.util.*;
   17.12  import java.io.*;
   17.13  
   17.14 +import org.netbeans.modules.vcscore.VcsFileSystem;
   17.15 +import org.netbeans.modules.vcscore.Variables;
   17.16 +import org.netbeans.modules.vcscore.commands.*;
   17.17 +import org.netbeans.modules.vcscore.cmdline.*;
   17.18 +import org.netbeans.modules.vcscore.cmdline.exec.*;
   17.19 +import org.netbeans.modules.vcscore.util.*;
   17.20 +
   17.21  /**
   17.22   *
   17.23   * @author  Martin Entlicher
   17.24   */
   17.25 -public class CvsLogInfo extends Object implements RegexListener {
   17.26 +public class CvsLogInfo extends Object implements CommandDataOutputListener {
   17.27  
   17.28      private Debug E=new Debug("CvsLogInfo",true); // NOI18N
   17.29      private Debug D=E;
   17.30 @@ -52,10 +55,16 @@
   17.31      private String branchesStr = new String("branches"); // NOI18N
   17.32      private String symbNamesStr = new String("symbolic names"); // NOI18N
   17.33      private String nextFileStr = new String("=================="); // NOI18N
   17.34 +    
   17.35 +    private VcsFileSystem fileSystem = null;
   17.36  
   17.37      /** Creates new CvsLogInfo */
   17.38      public CvsLogInfo() {
   17.39      }
   17.40 +    
   17.41 +    public void setFileSystem(VcsFileSystem fileSystem) {
   17.42 +        this.fileSystem = fileSystem;
   17.43 +    }
   17.44  
   17.45      public Vector getRevisions() {
   17.46          return revisions;
   17.47 @@ -127,30 +136,18 @@
   17.48          return revisionGraph;
   17.49      }
   17.50  
   17.51 -    public boolean updateLogInfo(Hashtable vars, String[] args,
   17.52 -                                 NoRegexListener stdoutListener,
   17.53 -                                 NoRegexListener stderrListener) {
   17.54 +    public boolean updateLogInfo(Hashtable vars, String cmdName,
   17.55 +                                 CommandOutputListener stdoutListener,
   17.56 +                                 CommandOutputListener stderrListener) {
   17.57          revisionGraph = new CvsRevisionGraph();
   17.58          mergeIsEmpty = true;
   17.59 -        String cmd = MiscStuff.array2string(args);
   17.60 -        Variables v=new Variables();
   17.61 -        String prepared=v.expand(vars,cmd, true);
   17.62 -        D.deb("Log prepared: "+prepared); // NOI18N
   17.63 -        if (stderrListener != null) stderrListener.match("LOG INFO: "+prepared); // NOI18N
   17.64 -        ExternalCommand ec=new ExternalCommand(prepared);
   17.65 -        ec.setTimeout(((Long) vars.get("TIMEOUT")).longValue()); // NOI18N
   17.66 -        String logDataRegex = (String) vars.get("DATAREGEX"); // NOI18N
   17.67 -        try{
   17.68 -            D.deb("stdout log dataRegex = "+logDataRegex); // NOI18N
   17.69 -            ec.addStdoutRegexListener(this, logDataRegex);
   17.70 -        } catch (BadRegexException e) {
   17.71 -            if (stderrListener != null) stderrListener.match("cvs log: Bad data regex "+logDataRegex+"\n"); // NOI18N
   17.72 -            return false;
   17.73 -        }
   17.74 -        if (stdoutListener != null) ec.addStdoutNoRegexListener(stdoutListener);
   17.75 -        if (stderrListener != null) ec.addStderrNoRegexListener(stderrListener);
   17.76 -        if ( ec.exec() != ExternalCommand.SUCCESS ){
   17.77 -            E.err("exec failed "+ec.getExitStatus()); // NOI18N
   17.78 +        VcsCommand cmd = fileSystem.getCommand(cmdName);
   17.79 +        VcsCommandExecutor vce = fileSystem.getVcsFactory().getCommandExecutor(cmd, new Hashtable(vars));
   17.80 +        vce.addDataOutputListener(this);
   17.81 +        fileSystem.getCommandsPool().startExecutor(vce);
   17.82 +        fileSystem.getCommandsPool().waitToFinish(vce);
   17.83 +        if (vce.getExitStatus() != VcsCommandExecutor.SUCCEEDED) {
   17.84 +            E.err("exec failed "+vce.getExitStatus()); // NOI18N
   17.85              return false;
   17.86          }
   17.87          D.deb("branches = "+branches); // NOI18N
   17.88 @@ -255,7 +252,7 @@
   17.89          mergeIsEmpty = false;
   17.90      }
   17.91  
   17.92 -    public void match(String[] elements) {
   17.93 +    public void outputData(String[] elements) {
   17.94          if (elements[0] == null) return;
   17.95          D.deb("log match: "+elements[0]); // NOI18N
   17.96          logBuffer.append(elements[0]+"\n"); // NOI18N
   17.97 @@ -305,4 +302,4 @@
   17.98          }
   17.99          if (elements[0].indexOf(symbNamesStr) >= 0) matchingSymbolicNames = true;
  17.100      }
  17.101 -}
  17.102 \ No newline at end of file
  17.103 +}
    18.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsModuleParser.java	Mon Jan 22 13:24:46 2001 +0000
    18.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsModuleParser.java	Mon Jan 22 20:58:06 2001 +0000
    18.3 @@ -15,7 +15,8 @@
    18.4  
    18.5  import java.util.*;
    18.6  
    18.7 -import org.netbeans.modules.vcs.util.Debug;
    18.8 +import org.netbeans.modules.vcscore.util.Debug;
    18.9 +
   18.10  /**
   18.11   *
   18.12   * @author  Martin Entlicher
    19.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsModuleSelector.java	Mon Jan 22 13:24:46 2001 +0000
    19.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsModuleSelector.java	Mon Jan 22 20:58:06 2001 +0000
    19.3 @@ -18,25 +18,24 @@
    19.4  import org.openide.*;
    19.5  import org.openide.util.*;
    19.6  
    19.7 -import org.netbeans.modules.vcs.cmdline.*;
    19.8 -import org.netbeans.modules.vcs.cmdline.exec.*;
    19.9 -import org.netbeans.modules.vcs.util.*;
   19.10 -import org.netbeans.modules.vcs.cmdline.VcsVariableSelector;
   19.11 -import org.netbeans.modules.vcs.cmdline.VcsAdditionalCommand;
   19.12 -import org.netbeans.modules.vcs.VcsConfigVariable;
   19.13 +import org.netbeans.modules.vcscore.VcsFileSystem;
   19.14 +import org.netbeans.modules.vcscore.Variables;
   19.15 +import org.netbeans.modules.vcscore.VcsConfigVariable;
   19.16 +import org.netbeans.modules.vcscore.commands.*;
   19.17 +import org.netbeans.modules.vcscore.util.*;
   19.18 +import org.netbeans.modules.vcscore.cmdline.VcsAdditionalCommand;
   19.19  
   19.20  /**
   19.21 - *
   19.22 + * The selector of CVS modules
   19.23   * @author  Martin Entlicher
   19.24 - * @version 
   19.25   */
   19.26 -public class CvsModuleSelector implements VcsVariableSelector, VcsAdditionalCommand, RegexListener {
   19.27 +public class CvsModuleSelector implements VcsAdditionalCommand, CommandDataOutputListener {
   19.28      private Debug E = new Debug("CvsModuleSelector", true); // NOI18N
   19.29      private Debug D = E;
   19.30  
   19.31      private Hashtable vars;
   19.32 -    private NoRegexListener stdoutNRListener;
   19.33 -    private NoRegexListener stderrNRListener;
   19.34 +    private CommandOutputListener stdoutNRListener;
   19.35 +    private CommandOutputListener stderrNRListener;
   19.36      private String dataRegex = "^(.*)$";
   19.37      private StringBuffer outputBuffer = new StringBuffer();
   19.38      private volatile boolean cmdSuccess = false;
   19.39 @@ -48,14 +47,19 @@
   19.40      private static transient String lastPrepared2 = null;
   19.41      private static transient Vector lastModules = null;
   19.42      
   19.43 -    private volatile boolean modulesStatGetStatus = false;
   19.44 -    private volatile boolean modulesAllGetStatus = false;
   19.45 +    //private volatile boolean modulesStatGetStatus = false;
   19.46 +    //private volatile boolean modulesAllGetStatus = false;
   19.47      private volatile CompleteStatusOutput completeOutput = null;
   19.48 +    private VcsFileSystem fileSystem = null;
   19.49  
   19.50      /** Creates new CvsModuleSelector */
   19.51      public CvsModuleSelector() {
   19.52          isCommand = false;
   19.53      }
   19.54 +    
   19.55 +    public void setFileSystem(VcsFileSystem fileSystem) {
   19.56 +        this.fileSystem = fileSystem;
   19.57 +    }
   19.58  
   19.59      /**
   19.60       * Find out whether we need to run the command which get module info.
   19.61 @@ -68,12 +72,11 @@
   19.62              return true;
   19.63          }
   19.64          if (lastPrepared1 == null || lastPrepared2 == null || lastModules == null) return true;
   19.65 -        Variables v = new Variables();
   19.66 -        String cmd = args[0]; //MiscStuff.array2string(args);
   19.67 -        String prepared = v.expand(vars, cmd, true);
   19.68 +        String cmd = args[0]; //VcsUtilities.array2string(args);
   19.69 +        String prepared = Variables.expand(vars, cmd, true);
   19.70          if (!prepared.equals(lastPrepared1)) return true;
   19.71 -        cmd = args[1]; //MiscStuff.array2string(args);
   19.72 -        prepared = v.expand(vars, cmd, true);
   19.73 +        cmd = args[1]; //VcsUtilities.array2string(args);
   19.74 +        prepared = Variables.expand(vars, cmd, true);
   19.75          return !prepared.equals(lastPrepared2);
   19.76      }
   19.77      
   19.78 @@ -93,17 +96,17 @@
   19.79       *        false if some error occured.
   19.80       */
   19.81      public boolean exec(Hashtable vars,String[] args,
   19.82 -                        NoRegexListener stdoutNRListener,
   19.83 -                        NoRegexListener stderrNRListener,
   19.84 -                        RegexListener stdoutListener,
   19.85 -                        String dataRegex,RegexListener stderrListener,String errorRegex) {
   19.86 +                        CommandOutputListener stdoutNRListener,
   19.87 +                        CommandOutputListener stderrNRListener,
   19.88 +                        CommandDataOutputListener stdoutListener, String dataRegex,
   19.89 +                        CommandDataOutputListener stderrListener, String errorRegex) {
   19.90          isCommand = true;
   19.91          String[] returns = execSel(vars, "MODULE", args, stdoutNRListener, stderrNRListener);
   19.92          String[] toReturn = new String[1];
   19.93          if (returns != null) {
   19.94              if (returns.length > 0 && returns[0] != null && returns[0].length() > 0) { 
   19.95 -                toReturn[0] = MiscStuff.arrayToQuotedString(returns, false);  //TODO for cygwin =true
   19.96 -                stdoutListener.match(toReturn); 
   19.97 +                toReturn[0] = VcsUtilities.arrayToQuotedString(returns, false);  //TODO for cygwin =true
   19.98 +                stdoutListener.outputData(toReturn); 
   19.99              }  
  19.100              return true;
  19.101          }
  19.102 @@ -123,8 +126,8 @@
  19.103       *         or null when an error occures.
  19.104       */
  19.105      public String[] execSel(Hashtable vars, String variable, String[] args,
  19.106 -                       NoRegexListener stdoutNRListener,
  19.107 -                       NoRegexListener stderrNRListener) {
  19.108 +                       CommandOutputListener stdoutNRListener,
  19.109 +                       CommandOutputListener stderrNRListener) {
  19.110          D.deb("exec for "+variable);
  19.111          this.vars = vars;
  19.112          this.stdoutNRListener = stdoutNRListener;
  19.113 @@ -143,9 +146,9 @@
  19.114      }
  19.115          */
  19.116          javax.swing.JFrame dlgFrame = new javax.swing.JFrame ();
  19.117 -        MiscStuff.centerWindow(dlgFrame);
  19.118 +        VcsUtilities.centerWindow(dlgFrame);
  19.119          CvsModuleSelectorDialog dlg = new CvsModuleSelectorDialog(dlgFrame, true);
  19.120 -        MiscStuff.centerWindow(dlg);
  19.121 +        VcsUtilities.centerWindow(dlg);
  19.122          dlg.calledAsCommand(isCommand);  // if run as command -> is called from CvsAction - disable some stuff
  19.123  
  19.124          final String[] fargs = args;
  19.125 @@ -196,7 +199,7 @@
  19.126          } else {
  19.127              if (dlgSuccess) return null;
  19.128              else {
  19.129 -              String[] toReturn = new String[0];
  19.130 +                String[] toReturn = {""};
  19.131                return toReturn;                        
  19.132              }    
  19.133          }
  19.134 @@ -204,77 +207,26 @@
  19.135  
  19.136      private boolean runCommand(String[] args) {
  19.137          if (args.length != 2) {
  19.138 -            if (stderrNRListener != null) stderrNRListener.match("Bad number of arguments. "+
  19.139 -                                                                 "Expecting two arguments: cvs co -s AND cvs co -c");
  19.140 +            if (stderrNRListener != null) stderrNRListener.outputLine("Bad number of arguments. "+
  19.141 +                                                                      "Expecting two arguments: cvs co -s AND cvs co -c");
  19.142              return false;
  19.143          }
  19.144 -        Variables v = new Variables();
  19.145 -        String cmd = args[0]; //MiscStuff.array2string(args);
  19.146 -        final String prepared1 = v.expand(vars, cmd, true);
  19.147 -        D.deb("prepared1: "+prepared1); // NOI18N
  19.148 -        final ExternalCommand ec1 = new ExternalCommand(prepared1);
  19.149 -        //ec.setTimeout(((Long) vars.get("TIMEOUT")).longValue()); // NOI18N
  19.150 -        if (stdoutNRListener != null) ec1.addStdoutNoRegexListener(stdoutNRListener);
  19.151 -        if (stderrNRListener != null) ec1.addStderrNoRegexListener(stderrNRListener);
  19.152 -        if (stderrNRListener != null) stderrNRListener.match(NbBundle.getBundle
  19.153 -                    ("org.netbeans.modules.vcs.cmdline.Bundle").getString ("MSG_VariableSelector")+
  19.154 -                    ": "+prepared1); // NOI18N
  19.155 -        try{
  19.156 -            ec1.addStdoutRegexListener(this, dataRegex);
  19.157 -        } catch (BadRegexException e) {
  19.158 -            if (stderrNRListener != null) {
  19.159 -                stderrNRListener.match("Bad data regex "+dataRegex); // NOI18N
  19.160 -            }
  19.161 -            return false;
  19.162 -        }
  19.163 -        cmd = args[1]; //MiscStuff.array2string(args);
  19.164 -        final String prepared2 = v.expand(vars, cmd, true);
  19.165 -        final ExternalCommand ec2 = new ExternalCommand(prepared2);
  19.166 -        if (stdoutNRListener != null) ec2.addStdoutNoRegexListener(stdoutNRListener);
  19.167 -        if (stderrNRListener != null) ec2.addStderrNoRegexListener(stderrNRListener);
  19.168 -        if (stderrNRListener != null) stderrNRListener.match(NbBundle.getBundle
  19.169 -                    ("org.netbeans.modules.vcs.cmdline.Bundle").getString ("MSG_VariableSelector")+
  19.170 -                    ": "+prepared2); // NOI18N
  19.171 +        VcsCommand cmd = fileSystem.getCommand(args[0]);
  19.172 +        Hashtable varsCopy1 = new Hashtable(vars);
  19.173 +        VcsCommandExecutor vce1 = fileSystem.getVcsFactory().getCommandExecutor(cmd, varsCopy1);
  19.174 +        vce1.addDataOutputListener(this);
  19.175 +        cmd = fileSystem.getCommand(args[1]);
  19.176 +        Hashtable varsCopy2 = new Hashtable(vars);
  19.177 +        VcsCommandExecutor vce2 = fileSystem.getVcsFactory().getCommandExecutor(cmd, varsCopy2);
  19.178          completeOutput = new CompleteStatusOutput();
  19.179 -        try{
  19.180 -            ec2.addStdoutRegexListener(completeOutput, dataRegex);
  19.181 -        } catch (BadRegexException e) {
  19.182 -            if (stderrNRListener != null) {
  19.183 -                stderrNRListener.match("Bad data regex "+dataRegex); // NOI18N
  19.184 -            }
  19.185 -            return false;
  19.186 -        }
  19.187 -        Thread t1 = new Thread("CVS-ModuleSelector1") {
  19.188 -            public void run() {
  19.189 -                if (ec1.exec() != ExternalCommand.SUCCESS) {
  19.190 -                    //E.err("exec failed "+ec1.getExitStatus()); // NOI18N
  19.191 -                    modulesStatGetStatus = false;
  19.192 -                } else {
  19.193 -                    lastPrepared1 = prepared1;
  19.194 -                    modulesStatGetStatus = true;
  19.195 -                }
  19.196 -            }
  19.197 -        };
  19.198 -        Thread t2 = new Thread("CVS-ModuleSelector2") {
  19.199 -            public void run() {
  19.200 -                if (ec2.exec() != ExternalCommand.SUCCESS) {
  19.201 -                    //E.err("exec failed "+ec1.getExitStatus()); // NOI18N
  19.202 -                    modulesAllGetStatus = false;
  19.203 -                } else {
  19.204 -                    lastPrepared2 = prepared2;
  19.205 -                    modulesAllGetStatus = true;
  19.206 -                }
  19.207 -            }
  19.208 -        };
  19.209 -        t1.start();
  19.210 -        t2.start();
  19.211 -        try {
  19.212 -            t1.join();
  19.213 -            t2.join();
  19.214 -        } catch (InterruptedException exc) {
  19.215 -            t1.interrupt();
  19.216 -            t2.interrupt();
  19.217 -        }
  19.218 +        vce2.addDataOutputListener(completeOutput);
  19.219 +        CommandsPool pool = fileSystem.getCommandsPool();
  19.220 +        pool.startExecutor(vce1);
  19.221 +        pool.startExecutor(vce2);
  19.222 +        pool.waitToFinish(vce1);
  19.223 +        pool.waitToFinish(vce2);
  19.224 +        boolean modulesStatGetStatus = vce1.getExitStatus() == VcsCommandExecutor.SUCCEEDED;
  19.225 +        boolean modulesAllGetStatus = vce2.getExitStatus() == VcsCommandExecutor.SUCCEEDED;
  19.226          return modulesStatGetStatus && modulesAllGetStatus;
  19.227      }
  19.228  
  19.229 @@ -303,13 +255,13 @@
  19.230          return modules;  
  19.231      }
  19.232  
  19.233 -    public void match(String[] elements) {
  19.234 +    public void outputData(String[] elements) {
  19.235          D.deb("match: "+elements[0]);
  19.236          if (elements[0].length() > 0 && elements[0].charAt(0) != '#')
  19.237              outputBuffer.append(elements[0]+"\n");
  19.238      }
  19.239  
  19.240 -    private final class CompleteStatusOutput implements org.netbeans.modules.vcs.cmdline.exec.RegexListener {
  19.241 +    private final class CompleteStatusOutput implements CommandDataOutputListener {
  19.242          private LinkedList statuses;
  19.243          
  19.244          public CompleteStatusOutput() {
  19.245 @@ -341,7 +293,7 @@
  19.246           * reads al output of the checkout -c command.
  19.247           * @param elements lines.
  19.248           */
  19.249 -        public void match(String[] elements) {
  19.250 +        public void outputData(String[] elements) {
  19.251              if (elements[0].length() > 0 && elements[0].charAt(0) != '#') {
  19.252                  String start = elements[0];
  19.253                  if (start == null) return;
  19.254 @@ -357,4 +309,4 @@
  19.255          
  19.256      }
  19.257  
  19.258 -}
  19.259 \ No newline at end of file
  19.260 +}
    20.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsModuleSelectorDialog.java	Mon Jan 22 13:24:46 2001 +0000
    20.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsModuleSelectorDialog.java	Mon Jan 22 20:58:06 2001 +0000
    20.3 @@ -19,12 +19,11 @@
    20.4  
    20.5  import org.openide.*;
    20.6  
    20.7 -import org.netbeans.modules.vcs.util.*;
    20.8 +import org.netbeans.modules.vcscore.util.*;
    20.9  
   20.10  /**
   20.11   *
   20.12   * @author  Martin Entlicher
   20.13 - * @version 
   20.14   */
   20.15  public class CvsModuleSelectorDialog extends javax.swing.JDialog {
   20.16  
    21.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsRevisionExplorer.java	Mon Jan 22 13:24:46 2001 +0000
    21.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsRevisionExplorer.java	Mon Jan 22 20:58:06 2001 +0000
    21.3 @@ -19,19 +19,20 @@
    21.4  import org.openide.filesystems.*;
    21.5  import org.openide.loaders.*;
    21.6  
    21.7 -import org.netbeans.modules.vcs.VcsFileSystem;
    21.8 -import org.netbeans.modules.vcs.util.MiscStuff;
    21.9 -import org.netbeans.modules.vcs.util.TopComponentCloseListener;
   21.10 -import org.netbeans.modules.vcs.cmdline.revision.*;
   21.11 -import org.netbeans.modules.vcs.cmdline.exec.*;
   21.12 -import org.netbeans.modules.vcs.cmdline.VcsAdditionalCommand;
   21.13 -import org.netbeans.modules.vcs.cmdline.Variables;
   21.14 +import org.netbeans.modules.vcscore.Variables;
   21.15 +import org.netbeans.modules.vcscore.VcsFileSystem;
   21.16 +import org.netbeans.modules.vcscore.cmdline.VcsAdditionalCommand;
   21.17 +import org.netbeans.modules.vcscore.commands.*;
   21.18 +import org.netbeans.modules.vcscore.revision.*;
   21.19 +import org.netbeans.modules.vcscore.util.VcsUtilities;
   21.20 +import org.netbeans.modules.vcscore.util.TopComponentCloseListener;
   21.21 +//import org.netbeans.modules.vcs.cmdline.exec.*;
   21.22  
   21.23  /**
   21.24   *
   21.25   * @author  Martin Entlicher
   21.26   */
   21.27 -public class CvsRevisionExplorer extends java.lang.Object implements VcsAdditionalCommand, RegexListener {
   21.28 +public class CvsRevisionExplorer extends java.lang.Object implements VcsAdditionalCommand, CommandDataOutputListener {
   21.29  
   21.30      private static final String revisionStr = new String("revision"); // NOI18N
   21.31      private static final String branchesStr = new String("branches"); // NOI18N
   21.32 @@ -52,8 +53,9 @@
   21.33      private ArrayList revisionItems = new ArrayList();
   21.34      private ArrayList lastRevisionItems = null;
   21.35      private VcsFileSystem fileSystem = null;
   21.36 -    private NoRegexListener stdoutNRListener = null;
   21.37 -    private NoRegexListener stderrNRListener = null;
   21.38 +    private VcsCommand logCmd = null;
   21.39 +    private CommandOutputListener stdoutNRListener = null;
   21.40 +    private CommandOutputListener stderrNRListener = null;
   21.41  
   21.42      /** Creates new CvsRevisionViewer */
   21.43      public CvsRevisionExplorer() {
   21.44 @@ -74,25 +76,17 @@
   21.45      /**
   21.46       * Run the log command and return the exit status.
   21.47       */
   21.48 -    private boolean runLog(String prepared, long timeout, String logDataRegex) {
   21.49 +    private boolean runLog(Hashtable vars) {
   21.50          //System.out.println("runLog("+prepared+", "+timeout+", "+logDataRegex+")");
   21.51          matchingSymbolicNames = false;
   21.52          matchingDescription = false;
   21.53          symbolicNames = new Hashtable();
   21.54          revisionItems = new ArrayList();
   21.55 -        if (stderrNRListener != null) stderrNRListener.match("LOG: "+prepared); // NOI18N
   21.56 -        ExternalCommand ec = new ExternalCommand(prepared);
   21.57 -        ec.setTimeout(timeout);
   21.58 -        //String logDataRegex = (String) vars.get("DATAREGEX"); // NOI18N
   21.59 -        try{
   21.60 -            ec.addStdoutRegexListener(this, logDataRegex);
   21.61 -        } catch (BadRegexException e) {
   21.62 -            if (stderrNRListener != null) stderrNRListener.match("cvs log: Bad data regex "+logDataRegex+"\n"); // NOI18N
   21.63 -            return false;
   21.64 -        }
   21.65 -        if (stdoutNRListener != null) ec.addStdoutNoRegexListener(stdoutNRListener);
   21.66 -        if (stderrNRListener != null) ec.addStderrNoRegexListener(stderrNRListener);
   21.67 -        if (ec.exec() != ExternalCommand.SUCCESS) {
   21.68 +        VcsCommandExecutor vce = fileSystem.getVcsFactory().getCommandExecutor(logCmd, vars);
   21.69 +        vce.addDataOutputListener(this);
   21.70 +        fileSystem.getCommandsPool().startExecutor(vce);
   21.71 +        fileSystem.getCommandsPool().waitToFinish(vce);
   21.72 +        if (vce.getExitStatus() != VcsCommandExecutor.SUCCEEDED) {
   21.73              //E.err("exec failed "+ec.getExitStatus()); // NOI18N
   21.74              return false;
   21.75          }
   21.76 @@ -115,19 +109,15 @@
   21.77       * @return true if the command was succesfull,
   21.78       *         false if some error has occured.
   21.79       */
   21.80 -    public boolean exec(Hashtable vars, String[] args,
   21.81 -                        NoRegexListener stdoutNRListener, NoRegexListener stderrNRListener,
   21.82 -                        RegexListener stdoutListener, String dataRegex,
   21.83 -                        RegexListener stderrListener, String errorRegex) {
   21.84 +    public boolean exec(final Hashtable vars, String[] args,
   21.85 +                        CommandOutputListener stdoutNRListener, CommandOutputListener stderrNRListener,
   21.86 +                        CommandDataOutputListener stdoutListener, String dataRegex,
   21.87 +                        CommandDataOutputListener stderrListener, String errorRegex) {
   21.88  
   21.89          this.stdoutNRListener = stdoutNRListener;
   21.90          this.stderrNRListener = stderrNRListener;
   21.91 -        String cmd = MiscStuff.array2string(args);
   21.92 -        Variables v = new Variables();
   21.93 -        final String prepared = v.expand(vars, cmd, true);
   21.94 -        final long timeout = ((Long) vars.get("TIMEOUT")).longValue(); // NOI18N
   21.95 -        final String logDataRegex = (String) vars.get("DATAREGEX"); // NOI18N
   21.96 -        boolean status = runLog(prepared, timeout, logDataRegex);
   21.97 +        this.logCmd = fileSystem.getCommand(args[0]);
   21.98 +        boolean status = runLog(new Hashtable(vars));
   21.99          if (false == status) return status;
  21.100          //ArrayList revisionItems = createRevisionItems();
  21.101          final RevisionList list = new RevisionList();
  21.102 @@ -202,7 +192,7 @@
  21.103              public void revisionsChanged(int whatChanged, FileObject chfo, Object info) {
  21.104                  //System.out.println("revisionsChanged("+whatChanged+"), fo = "+fo+", info = "+info);
  21.105                  if (fo == chfo) {
  21.106 -                    runLog(prepared, timeout, logDataRegex);
  21.107 +                    runLog(new Hashtable(vars));
  21.108                      if ((whatChanged & RevisionListener.NUM_REVISIONS_CHANGED) != 0) {
  21.109                          adjustItems(list);
  21.110                          lastRevisionItems = revisionItems;
  21.111 @@ -322,7 +312,7 @@
  21.112          return item;
  21.113      }
  21.114      
  21.115 -    public void match(String[] elements) {
  21.116 +    public void outputData(String[] elements) {
  21.117          //logBuffer.append(elements[0]);
  21.118          if (elements == null || elements.length == 0 || elements[0] == null) return;
  21.119          if (elements[0].indexOf(revisionStr) == 0) {
    22.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsRevisionSelector.java	Mon Jan 22 13:24:46 2001 +0000
    22.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/commands/CvsRevisionSelector.java	Mon Jan 22 20:58:06 2001 +0000
    22.3 @@ -16,9 +16,10 @@
    22.4  import java.util.Vector;
    22.5  import java.util.Hashtable;
    22.6  
    22.7 -import org.netbeans.modules.vcs.cmdline.*;
    22.8 -import org.netbeans.modules.vcs.util.*;
    22.9 -import org.netbeans.modules.vcs.cmdline.exec.*;
   22.10 +import org.netbeans.modules.vcscore.VcsFileSystem;
   22.11 +import org.netbeans.modules.vcscore.commands.*;
   22.12 +import org.netbeans.modules.vcscore.cmdline.VcsAdditionalCommand;
   22.13 +import org.netbeans.modules.vcscore.util.VcsUtilities;
   22.14  
   22.15  /**
   22.16   * The selector of CVS revision.
   22.17 @@ -28,12 +29,18 @@
   22.18  public class CvsRevisionSelector extends Object implements VcsAdditionalCommand {
   22.19  
   22.20      private static final String BRANCH_OPTION = "-b"; // NOI18N
   22.21 +    private static final String TAGS_OPTION = "-t"; // NOI18N
   22.22 +
   22.23      private CvsLogInfo logInfo = new CvsLogInfo();
   22.24  
   22.25      /** Creates new CvsRevisionSelector */
   22.26      public CvsRevisionSelector() {
   22.27      }
   22.28  
   22.29 +    public void setFileSystem(VcsFileSystem fileSystem) {
   22.30 +        this.logInfo.setFileSystem(fileSystem);
   22.31 +    }
   22.32 +
   22.33      /**
   22.34       * Executes the command passed through arguments.
   22.35       * @param vars variables needed to run cvs commands
   22.36 @@ -50,18 +57,17 @@
   22.37       *         false if some error has occured.
   22.38       */
   22.39      public boolean exec(Hashtable vars, String[] args,
   22.40 -                        NoRegexListener stdoutNRListener, NoRegexListener stderrNRListener,
   22.41 -                        RegexListener stdoutListener, String dataRegex,
   22.42 -                        RegexListener stderrListener, String errorRegex) {
   22.43 +                        CommandOutputListener stdoutNRListener, CommandOutputListener stderrNRListener,
   22.44 +                        CommandDataOutputListener stdoutListener, String dataRegex,
   22.45 +                        CommandDataOutputListener stderrListener, String errorRegex) {
   22.46                              
   22.47          int startArg = 0;
   22.48          boolean branch = args.length > 0 && args[0].equalsIgnoreCase(BRANCH_OPTION);
   22.49          if (branch) startArg++;
   22.50 -        String input = (String) vars.get("INPUT"); // NOI18N
   22.51 -        if (input == null) input = ""; // NOI18N
   22.52 -        long timeout = ((Long) vars.get("TIMEOUT")).longValue(); // NOI18N
   22.53 +        boolean tags = args.length > 0 && args[0].equalsIgnoreCase(TAGS_OPTION);
   22.54 +        if (tags) startArg++;
   22.55          CvsRevisionChooser crc = new CvsRevisionChooser(new javax.swing.JFrame (), true);
   22.56 -        MiscStuff.centerWindow(crc);
   22.57 +        VcsUtilities.centerWindow(crc);
   22.58          if (args.length > startArg) {
   22.59              String cmdName = args[startArg];
   22.60              if (cmdName.charAt(0) == '"') {
   22.61 @@ -79,10 +85,10 @@
   22.62              //D.deb("Setting command name = "+cmdName); // NOI18N
   22.63              startArg++;
   22.64          }
   22.65 -        String argsCmd[] = null;
   22.66 +        String argsCmd = null;
   22.67          if (args.length > startArg) {
   22.68 -            argsCmd = new String[1];
   22.69 -            argsCmd[0] = args[startArg];
   22.70 +            //argsCmd = new String[1];
   22.71 +            argsCmd = args[startArg];
   22.72              startArg++;
   22.73          }
   22.74          boolean success = this.logInfo.updateLogInfo(vars, argsCmd, stdoutNRListener, stderrNRListener);
   22.75 @@ -90,6 +96,9 @@
   22.76              Vector revisions;
   22.77              if (branch) {
   22.78                  revisions = logInfo.getBranchesWithSymbolicNames();
   22.79 +            } else if (tags) {
   22.80 +                Hashtable theTags = logInfo.getSymbolicNames();
   22.81 +                revisions = new Vector(theTags.keySet());
   22.82              } else {
   22.83                  revisions = logInfo.getRevisionsWithSymbolicNames();
   22.84              }
   22.85 @@ -101,7 +110,7 @@
   22.86              String revision = crc.getRevision();
   22.87              //D.deb("I have revision = "+revision); // NOI18N
   22.88              if (revision != null) {
   22.89 -                if (stdoutListener != null) stdoutListener.match(new String[] { revision });
   22.90 +                if (stdoutListener != null) stdoutListener.outputData(new String[] { revision });
   22.91              }
   22.92          }
   22.93          return true;
    23.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/list/CvsListCommand.java	Mon Jan 22 13:24:46 2001 +0000
    23.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/list/CvsListCommand.java	Mon Jan 22 20:58:06 2001 +0000
    23.3 @@ -13,29 +13,42 @@
    23.4  
    23.5  package org.netbeans.modules.vcs.cmdline.list;
    23.6  
    23.7 -import org.netbeans.modules.vcs.cmdline.VcsListCommand;
    23.8 -import org.netbeans.modules.vcs.cmdline.Variables;
    23.9 -import org.netbeans.modules.vcs.util.*;
   23.10 -import org.netbeans.modules.vcs.cmdline.exec.*;
   23.11 -
   23.12  import java.io.*;
   23.13  import java.util.*;
   23.14  import java.beans.*;
   23.15  import java.text.*;
   23.16 +
   23.17 +import org.netbeans.modules.vcscore.VcsFileSystem;
   23.18 +import org.netbeans.modules.vcscore.Variables;
   23.19 +import org.netbeans.modules.vcscore.commands.*;
   23.20 +import org.netbeans.modules.vcscore.cmdline.VcsListCommand;
   23.21 +import org.netbeans.modules.vcscore.cmdline.UserCommand;
   23.22 +import org.netbeans.modules.vcscore.util.*;
   23.23 +
   23.24  /**
   23.25   * List command for CVS.
   23.26   * @author  Martin Entlicher
   23.27 - * @version 
   23.28   */
   23.29 -public class CvsListCommand extends VcsListCommand implements RegexListener {
   23.30 +public class CvsListCommand extends VcsListCommand implements CommandDataOutputListener {
   23.31 +
   23.32 +    static final String CVS_DIRNAME = "CVS"; // NOI18N
   23.33 +    static final String[] CVS_DIRCONTENT = {"Entries", "Repository", "Root"}; // NOI18N
   23.34 +    static final String[] EXAMINING_STRS = {"status: Examining", "server: Examining"}; // NOI18N
   23.35 +    static final String MATCH_FILE = "File:"; // NOI18N
   23.36 +    static final String MATCH_STATUS = "Status:"; // NOI18N
   23.37 +    static final String MATCH_REVISION = "Working revision:"; // NOI18N
   23.38 +    static final String MATCH_STICKY_TAG = "Sticky Tag:"; // NOI18N
   23.39 +    static final String MATCH_STICKY_DATE = "Sticky Date:"; // NOI18N
   23.40 +    static final String MATCH_STICKY_OPTIONS = "Sticky Options:"; // NOI18N
   23.41 +    static final String STICKY_NONE = "(none)"; // NOI18N
   23.42 +    static final String STATUS_UNKNOWN = "Unknown"; // NOI18N
   23.43 +    static final String FILE_SEPARATOR = "===================================="; // NOI18N
   23.44  
   23.45      private Debug E=new Debug("CvsListCommand",true); // NOI18N
   23.46      private Debug D=E;
   23.47  
   23.48      private String rootDir=null;
   23.49      private String dir=null;
   23.50 -    private String cmd=null;
   23.51 -    private String cvsRoot=null;
   23.52  
   23.53      private boolean shouldFail=false;
   23.54  
   23.55 @@ -43,24 +56,25 @@
   23.56  
   23.57      private StringBuffer dataBuffer=new StringBuffer(4096);
   23.58      //private StringBuffer errorBuffer = new StringBuffer(256);
   23.59 -    private NoRegexListener stdoutNRListener = null;
   23.60 -    private NoRegexListener stderrNRListener = null;
   23.61 -    private RegexListener stderrListener = null;
   23.62 +    private CommandOutputListener stdoutNRListener = null;
   23.63 +    private CommandOutputListener stderrNRListener = null;
   23.64 +    private CommandDataOutputListener stderrListener = null;
   23.65  
   23.66      private String dataRegex = null;
   23.67      private String errorRegex = null;
   23.68      private String input = null;
   23.69 -    private long timeout = 0;
   23.70 -
   23.71 -    private static final String CVS_DIRNAME = "CVS";
   23.72 -    private static final String[] CVS_DIRCONTENT = {"Entries", "Repository", "Root"};
   23.73 +    private VcsFileSystem fileSystem = null;
   23.74  
   23.75      /** Creates new CvsListCommand */
   23.76      public CvsListCommand() {
   23.77      }
   23.78  
   23.79 +    public void setFileSystem(VcsFileSystem fileSystem) {
   23.80 +        this.fileSystem = fileSystem;
   23.81 +    }
   23.82 +
   23.83      private void initVars(Hashtable vars, String[] args) {
   23.84 -        this.cmd = MiscStuff.array2string(args);
   23.85 +        //this.cmd = VcsUtilities.array2string(args);
   23.86  
   23.87          this.rootDir = (String) vars.get("ROOTDIR"); // NOI18N
   23.88          if (this.rootDir == null) {
   23.89 @@ -86,7 +100,7 @@
   23.90          if (dir.charAt(dir.length() - 1) == File.separatorChar)
   23.91              dir = dir.substring(0, dir.length() - 1);
   23.92          D.deb("dir="+dir); // NOI18N
   23.93 -
   23.94 +        /*
   23.95          String dataRegex = (String) vars.get("DATAREGEX"); // NOI18N
   23.96          if (dataRegex != null) this.dataRegex = dataRegex;
   23.97          String errorRegex = (String) vars.get("ERRORREGEX"); // NOI18N
   23.98 @@ -94,7 +108,7 @@
   23.99          D.deb("dataRegex = "+dataRegex+", errorRegex = "+errorRegex); // NOI18N
  23.100          this.input = (String) vars.get("INPUT"); // NOI18N
  23.101          if (this.input == null) this.input = "Cancel/n"; // NOI18N
  23.102 -        this.timeout = ((Long) vars.get("TIMEOUT")).longValue(); // NOI18N
  23.103 +         */
  23.104      }
  23.105  
  23.106      private boolean isCVSDir() {
  23.107 @@ -102,77 +116,38 @@
  23.108          String[] files=d.list();
  23.109          if (files != null) {
  23.110              for(int i = 0; i < files.length; i++)
  23.111 -                if (files[i].equals("CVS")) return true; // NOI18N
  23.112 +                if (files[i].equals(CVS_DIRNAME)) return true;
  23.113          }
  23.114          shouldFail=true ;
  23.115          return false;
  23.116      }
  23.117  
  23.118 -    //-----------------------------------
  23.119 -    private void runStatusCommand(Hashtable vars){
  23.120 -
  23.121 -        /*
  23.122 -        vars.put("DIR",dir);
  23.123 -        vars.put("CVSROOT",cvsRoot);
  23.124 -        */
  23.125 -        Variables v=new Variables();
  23.126 -        String prepared=v.expand(vars,cmd, true);
  23.127 -
  23.128 -        D.deb("prepared = "+prepared); // NOI18N
  23.129 -        D.deb("DIR = '"+(String) vars.get("DIR")+"'"+", dir = '"+this.dir+"'"); // NOI18N
  23.130 -        ExternalCommand ec=new ExternalCommand(prepared);
  23.131 -        if (stderrListener != null) {
  23.132 -            String[] command = { "LIST: "+prepared }; // NOI18N
  23.133 -            stderrListener.match(command);
  23.134 -        }
  23.135 -        if (stderrNRListener != null) stderrNRListener.match("LIST: "+prepared); // NOI18N
  23.136 -        ec.setTimeout(timeout);
  23.137 -        ec.setInput(input);
  23.138 -
  23.139 -        try{
  23.140 -            D.deb("stdout dataRegex = "+dataRegex); // NOI18N
  23.141 -            ec.addStdoutRegexListener(this,dataRegex);
  23.142 -        }
  23.143 -        catch (BadRegexException e){
  23.144 -            //E.err(e,"bad regex"); // NOI18N
  23.145 -            //errorBuffer.append("CvsList: Bad data regex "+dataRegex+"\n"); // NOI18N
  23.146 -            if (stderrListener != null) {
  23.147 -                String[] elements = { "CvsList: Bad data regex "+dataRegex+"\n" }; // NOI18N
  23.148 -                stderrListener.match(elements);
  23.149 -            }
  23.150 -            //System.err.println("CvsList: Bad regex "+dataRegex);
  23.151 -            shouldFail=true ;
  23.152 -        }
  23.153 -
  23.154 -        try{
  23.155 -            ec.addStderrRegexListener(new RegexListener () {
  23.156 -                                          public void match(String[] elements){
  23.157 -                                              //D.deb("stderr match:"+MiscStuff.arrayToString(elements)); // NOI18N
  23.158 -                                              //errorBuffer.append(elements[0]+"\n"); // NOI18N
  23.159 -                                              //System.err.println("CvsList: stderr: "+elements[0]);
  23.160 -                                              shouldFail=true ;
  23.161 -                                          }
  23.162 -                                      },errorRegex);
  23.163 -            if (this.stderrListener != null) ec.addStderrRegexListener(stderrListener, errorRegex);
  23.164 -            ec.addStderrRegexListener(this,dataRegex); // Because of "Examining" status // NOI18N
  23.165 -        }
  23.166 -        catch (BadRegexException e){
  23.167 -            //E.err(e,"bad regex"); // NOI18N
  23.168 -            //errorBuffer.append("CvsList: Bad error regex "+errorRegex+"\n"); // NOI18N
  23.169 -            if (stderrListener != null) {
  23.170 -                String[] elements = { "CvsList: Bad error regex "+errorRegex+"\n" }; // NOI18N
  23.171 -                stderrListener.match(elements);
  23.172 -            }
  23.173 -            //System.err.println("CvsList: Bad regex "+errorRegex);
  23.174 -            shouldFail=true ;
  23.175 -        }
  23.176 -
  23.177 -        if (this.stdoutNRListener != null) ec.addStdoutNoRegexListener(stdoutNRListener);
  23.178 -        if (this.stderrNRListener != null) ec.addStderrNoRegexListener(stderrNRListener);
  23.179 -
  23.180 -        //D.deb("ec="+ec); // NOI18N
  23.181 -        if( ec.exec() != ExternalCommand.SUCCESS ){
  23.182 -            //E.err("exec failed "+ec.getExitStatus()); // NOI18N
  23.183 +    /**
  23.184 +     * Run the LIST command given in the <code>args</code> array.
  23.185 +     * @param vars the variables passed from the VCS filesystem
  23.186 +     * @param args the LIST command to execute
  23.187 +     * @param addErrOut whether to add error output to the output listener
  23.188 +     */
  23.189 +    private void runStatusCommand(Hashtable vars, String[] args, boolean addErrOut) {
  23.190 +        String cmdStr = array2string(args);
  23.191 +        String prepared = Variables.expand(vars, cmdStr, true);
  23.192 +        UserCommand cmd = new UserCommand();
  23.193 +        cmd.setName("LIST_CMD");
  23.194 +        //cmd.setDisplayName("Refresh Support");
  23.195 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, prepared);
  23.196 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, dataRegex);
  23.197 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, errorRegex);
  23.198 +        // The user should be warned by the wrapper class and not the command itself.
  23.199 +        cmd.setProperty(VcsCommand.PROPERTY_IGNORE_FAIL, new Boolean(true));
  23.200 +        VcsCommandExecutor ec = fileSystem.getVcsFactory().getCommandExecutor(cmd, vars);
  23.201 +        ec.addDataOutputListener(this);
  23.202 +        if (addErrOut) ec.addDataErrorOutputListener(this);
  23.203 +        ec.addOutputListener(stdoutNRListener);
  23.204 +        ec.addErrorOutputListener(stderrNRListener);
  23.205 +        fileSystem.getCommandsPool().startExecutor(ec);
  23.206 +        fileSystem.getCommandsPool().waitToFinish(ec);
  23.207 +        if (ec.getExitStatus() != VcsCommandExecutor.SUCCEEDED) {
  23.208 +            //E.err("exec failed "+ec.getExitStatus());
  23.209              shouldFail=true;
  23.210          }
  23.211      }
  23.212 @@ -183,23 +158,34 @@
  23.213          return (data.charAt(index) == '.');
  23.214      }
  23.215  
  23.216 -    //-------------------------------------------
  23.217 +    /** Fill the data information into the hash table containing files
  23.218 +     * and their status attributes.
  23.219 +     */
  23.220      private void fillHashtable(Hashtable filesByName) {
  23.221          String data=new String(dataBuffer);
  23.222 -        String examiningStr = "status: Examining"; // NOI18N
  23.223 +        String examiningStr = EXAMINING_STRS[0];
  23.224  
  23.225          int pos=0;
  23.226 -        int index=0;
  23.227          /* I expect file listing in the form: File: <filename> Status: <status>
  23.228           * There has to be info line about examining directories.
  23.229 -         * (Regex ^(File:.*Status:.*$)|(cvs status.*)) 
  23.230 +         * I.e. Regex: "^(File:.*Status:.*$)|( *Working revision:.*$)|( *Sticky .*$)|(cvs status.*)|(cvs server.*)"
  23.231           */
  23.232          int fileIndex;
  23.233 +        int examIndex = -1;
  23.234 +        for (int i = 0; i < EXAMINING_STRS.length; i++) {
  23.235 +            examIndex = data.indexOf(EXAMINING_STRS[i], pos);
  23.236 +            if (examIndex >= 0) {
  23.237 +                examiningStr = EXAMINING_STRS[i];
  23.238 +                break;
  23.239 +            }
  23.240 +        }
  23.241 +        /*
  23.242          int examIndex = data.indexOf(examiningStr, pos);
  23.243          if (examIndex < 0) {
  23.244              examiningStr = "server: Examining"; // NOI18N
  23.245              examIndex = data.indexOf(examiningStr, pos);
  23.246          }
  23.247 +         */
  23.248          boolean examining = true;
  23.249          if (examIndex < 0) {
  23.250              E.err("Warning: No examining info from cvs status command !"); // NOI18N
  23.251 @@ -208,60 +194,84 @@
  23.252              examining = furtherExamining(data, examIndex += examiningStr.length());
  23.253              examIndex = data.indexOf(examiningStr, examIndex);
  23.254          }
  23.255 -        fileIndex=data.indexOf("File:",pos); // NOI18N
  23.256 +        fileIndex = data.indexOf(MATCH_FILE, pos);
  23.257          while( examining && fileIndex >=0 ){
  23.258 -            //int fileIndex=data.indexOf("File:",pos); // NOI18N
  23.259 -            int statusIndex=data.indexOf("Status:",pos); // NOI18N
  23.260 -
  23.261 -            int nextIndex=data.indexOf("\n",statusIndex); // NOI18N
  23.262 -            if( nextIndex<0 ){
  23.263 -                nextIndex=data.length()-1;
  23.264 +            int statusIndex = data.indexOf(MATCH_STATUS, fileIndex);
  23.265 +            int endFileIndex = data.indexOf(FILE_SEPARATOR, statusIndex);
  23.266 +            if (endFileIndex < 0) endFileIndex = data.length() - 1;
  23.267 +            fileIndex += MATCH_FILE.length();
  23.268 +            String fileName=data.substring(fileIndex,statusIndex).trim();
  23.269 +            int i=-1;
  23.270 +            if ((i=fileName.indexOf("no file")) >=0  ){ // NOI18N
  23.271 +                fileName=fileName.substring(i+7).trim();
  23.272              }
  23.273 -
  23.274 -            D.deb("fillHashtable: fileIndex = "+fileIndex+", statusIndex = "+statusIndex); // NOI18N
  23.275 -            if( fileIndex>=0 && statusIndex>=0 ){
  23.276 -                fileIndex+="File:".length(); // NOI18N
  23.277 -                String fileName=data.substring(fileIndex,statusIndex).trim();
  23.278 -                int i=-1;
  23.279 -                if( (i=fileName.indexOf("no file")) >=0  ){ // NOI18N
  23.280 -                    fileName=fileName.substring(i+7).trim();
  23.281 -                }
  23.282 -                //D.deb("fileName="+fileName); // NOI18N
  23.283 -
  23.284 -                String fileDetails=data.substring(index,nextIndex);
  23.285 -                //D.deb("fileDetails="+fileDetails); // NOI18N
  23.286 -
  23.287 -                int eolIndex=data.indexOf("\n",statusIndex); // NOI18N
  23.288 -                String fileStatus="Unknown"; // NOI18N
  23.289 -
  23.290 -                if( statusIndex>=0 && eolIndex>=0 ){
  23.291 -                    statusIndex+="Status:".length(); // NOI18N
  23.292 -                    fileStatus=data.substring(statusIndex,eolIndex).trim();
  23.293 -                }
  23.294 -                //D.deb("fileStatus="+fileStatus); // NOI18N
  23.295 -
  23.296 -                D.deb("fillHashTable: "+"fileName="+fileName+", fileStatus="+fileStatus); // NOI18N
  23.297 -
  23.298 -                String[] fileStatuses = new String[2];
  23.299 -                fileStatuses[0] = fileName;
  23.300 -                fileStatuses[1] = fileStatus;
  23.301 -                filesByName.put(fileName,fileStatuses);
  23.302 +            int[] index = new int[] { statusIndex };
  23.303 +            String fileStatus = getAttribute(data, MATCH_STATUS, index);
  23.304 +            if (fileStatus == null) {
  23.305 +                fileStatus = STATUS_UNKNOWN;
  23.306              }
  23.307 -            pos=nextIndex;
  23.308 -            fileIndex=data.indexOf("File:",pos); // NOI18N
  23.309 +            String fileRevision = getAttribute(data, MATCH_REVISION, index);
  23.310 +            String fileDate = "";
  23.311 +            String fileTime = "";
  23.312 +            if (fileRevision == null) {
  23.313 +                fileRevision = "";
  23.314 +            } else {
  23.315 +                String revInfo = fileRevision;
  23.316 +                int endRevIndex = fileRevision.indexOf(" ");
  23.317 +                int endRevIndex1 = fileRevision.indexOf("\t");
  23.318 +                if (endRevIndex1 >= 0 && endRevIndex1 < endRevIndex) endRevIndex = endRevIndex1;
  23.319 +                if (endRevIndex < 0) endRevIndex = revInfo.length();
  23.320 +                fileRevision = revInfo.substring(0, endRevIndex);
  23.321 +                revInfo = revInfo.substring(endRevIndex).trim();
  23.322 +            }
  23.323 +            String fileStickyTag = getAttribute(data, MATCH_STICKY_TAG, index);
  23.324 +            if (fileStickyTag == null || index[0] > endFileIndex
  23.325 +                || STICKY_NONE.equals(fileStickyTag)) fileStickyTag = "";
  23.326 +            else {
  23.327 +                int spaceIndex = fileStickyTag.indexOf(" ");
  23.328 +                if (spaceIndex > 0) fileStickyTag = fileStickyTag.substring(0, spaceIndex);
  23.329 +            }
  23.330 +            String fileStickyDate = getAttribute(data, MATCH_STICKY_DATE, index);
  23.331 +            if (fileStickyDate == null || index[0] > endFileIndex
  23.332 +                || STICKY_NONE.equals(fileStickyDate)) fileStickyDate = "";
  23.333 +            String fileSticky = (fileStickyTag + " " + fileStickyDate).trim();
  23.334 +            D.deb("fillHashTable: "+"fileName="+fileName+", fileStatus="+fileStatus); // NOI18N
  23.335 +            
  23.336 +            String[] fileStatuses = new String[6];
  23.337 +            fileStatuses[0] = fileName;
  23.338 +            fileStatuses[1] = fileStatus;
  23.339 +            fileStatuses[2] = fileRevision;
  23.340 +            fileStatuses[3] = fileTime;
  23.341 +            fileStatuses[4] = fileDate;
  23.342 +            fileStatuses[5] = fileSticky;
  23.343 +            filesByName.put(fileName,fileStatuses);
  23.344 +            pos = endFileIndex;
  23.345 +            fileIndex = data.indexOf(MATCH_FILE, pos);
  23.346              if (examIndex > 0 && examIndex < fileIndex) {
  23.347                  examining = furtherExamining(data, examIndex += examiningStr.length());
  23.348                  examIndex = data.indexOf(examiningStr, examIndex);
  23.349              }
  23.350          }
  23.351      }
  23.352 +    
  23.353 +    static String getAttribute(String data, String attr, int[] index) {
  23.354 +        String attrValue = null;
  23.355 +        int attrIndex = data.indexOf(attr, index[0]);
  23.356 +        if (attrIndex >= 0) {
  23.357 +            index[0] = attrIndex + attr.length();
  23.358 +            int eolIndex = data.indexOf("\n", index[0]);
  23.359 +            if (eolIndex < 0) eolIndex = data.length();
  23.360 +            attrValue = data.substring(index[0], eolIndex).trim();
  23.361 +        }
  23.362 +        return attrValue;
  23.363 +    }
  23.364  
  23.365      /**
  23.366      * Test if the directory was checked out by CVS or not.
  23.367      * @param dir the directory name to test
  23.368      * @return <code>true</code> if the directory was created by CVS, <code>false</code> if not.
  23.369      */
  23.370 -    private boolean isCVSDirectory(File dir) {
  23.371 +    private static boolean isCVSDirectory(File dir) {
  23.372          File subdir = new File(dir, CVS_DIRNAME);
  23.373          if (!subdir.isDirectory()) return false;
  23.374          for(int i = 0; i < CVS_DIRCONTENT.length; i++) {
  23.375 @@ -319,9 +329,9 @@
  23.376       * @param errorRegex the regular expression for parsing the error output
  23.377       */
  23.378      public boolean list(Hashtable vars, String[] args, Hashtable filesByName,
  23.379 -                        NoRegexListener stdoutNRListener, NoRegexListener stderrNRListener,
  23.380 -                        RegexListener stdoutListener, String dataRegex,
  23.381 -                        RegexListener stderrListener, String errorRegex) {
  23.382 +                        CommandOutputListener stdoutNRListener, CommandOutputListener stderrNRListener,
  23.383 +                        CommandDataOutputListener stdoutListener, String dataRegex,
  23.384 +                        CommandDataOutputListener stderrListener, String errorRegex) {
  23.385  
  23.386          this.stdoutNRListener = stdoutNRListener;
  23.387          this.stderrNRListener = stderrNRListener;
  23.388 @@ -329,52 +339,14 @@
  23.389          this.dataRegex = dataRegex;
  23.390          this.errorRegex = errorRegex;
  23.391          initVars(vars, args);
  23.392 -        /*if (isCVSDir())*/ runStatusCommand(vars);
  23.393 +        runStatusCommand(vars, args, true);
  23.394          if (!shouldFail) fillHashtable(filesByName);
  23.395          addLocalFiles(filesByName);
  23.396 -        if (shouldFail) {
  23.397 -            //errorBuffer.append(allOutputBuffer.toString());
  23.398 -            //filesByName.put("ERROR", errorBuffer.toString()); // NOI18N
  23.399 -        }
  23.400          return !shouldFail;
  23.401      }
  23.402  
  23.403 -    public void match(String[] elements) {
  23.404 +    public void outputData(String[] elements) {
  23.405          dataBuffer.append(elements[0]+"\n"); // NOI18N
  23.406          D.deb("match: append line '"+elements[0]+"'"); // NOI18N
  23.407      }
  23.408  }
  23.409 -
  23.410 -/*
  23.411 - * Log
  23.412 - *  25   Jaga      1.23.1.0    3/8/00   Martin Entlicher Add only directories 
  23.413 - *       which are in CVS repository.
  23.414 - *  24   Gandalf   1.23        2/10/00  Martin Entlicher Local directories added 
  23.415 - *       with no status information.
  23.416 - *  23   Gandalf   1.22        1/18/00  Martin Entlicher 
  23.417 - *  22   Gandalf   1.21        1/17/00  Martin Entlicher NOI18N + parsing 
  23.418 - *       examining info corrected
  23.419 - *  21   Gandalf   1.20        1/15/00  Ian Formanek    NOI18N
  23.420 - *  20   Gandalf   1.19        1/6/00   Martin Entlicher 
  23.421 - *  19   Gandalf   1.18        12/28/99 Martin Entlicher 
  23.422 - *  18   Gandalf   1.17        12/14/99 Martin Entlicher Listeners added
  23.423 - *  17   Gandalf   1.16        12/8/99  Martin Entlicher 
  23.424 - *  16   Gandalf   1.15        12/2/99  Martin Entlicher 
  23.425 - *  15   Gandalf   1.14        12/1/99  Martin Entlicher 
  23.426 - *  14   Gandalf   1.13        11/30/99 Martin Entlicher 
  23.427 - *  13   Gandalf   1.12        11/10/99 Martin Entlicher 
  23.428 - *  12   Gandalf   1.11        11/9/99  Martin Entlicher 
  23.429 - *  11   Gandalf   1.10        11/4/99  Martin Entlicher 
  23.430 - *  10   Gandalf   1.9         10/26/99 Martin Entlicher 
  23.431 - *  9    Gandalf   1.8         10/26/99 Martin Entlicher 
  23.432 - *  8    Gandalf   1.7         10/26/99 Martin Entlicher 
  23.433 - *  7    Gandalf   1.6         10/26/99 Martin Entlicher 
  23.434 - *  6    Gandalf   1.5         10/25/99 Pavel Buzek     
  23.435 - *  5    Gandalf   1.4         10/23/99 Ian Formanek    NO SEMANTIC CHANGE - Sun
  23.436 - *       Microsystems Copyright in File Comment
  23.437 - *  4    Gandalf   1.3         10/13/99 Martin Entlicher 
  23.438 - *  3    Gandalf   1.2         10/10/99 Pavel Buzek     
  23.439 - *  2    Gandalf   1.1         10/9/99  Martin Entlicher 
  23.440 - *  1    Gandalf   1.0         10/7/99  Martin Entlicher initial revision
  23.441 - * $
  23.442 - */
    24.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/list/CvsListRecursiveCommand.java	Mon Jan 22 13:24:46 2001 +0000
    24.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/list/CvsListRecursiveCommand.java	Mon Jan 22 20:58:06 2001 +0000
    24.3 @@ -13,39 +13,36 @@
    24.4  
    24.5  package org.netbeans.modules.vcs.cmdline.list;
    24.6  
    24.7 -import org.netbeans.modules.vcs.cmdline.VcsListRecursiveCommand;
    24.8 -import org.netbeans.modules.vcs.cmdline.Variables;
    24.9 -import org.netbeans.modules.vcs.VcsDirContainer;
   24.10 -import org.netbeans.modules.vcs.util.*;
   24.11 -import org.netbeans.modules.vcs.cmdline.exec.*;
   24.12 -//import org.netbeans.modules.vcs.cmdline.commands.CvsModuleParser;
   24.13 -
   24.14  import java.io.*;
   24.15  import java.util.*;
   24.16  
   24.17 +import org.apache.regexp.*;
   24.18 +
   24.19 +import org.netbeans.modules.vcscore.VcsFileSystem;
   24.20 +import org.netbeans.modules.vcscore.Variables;
   24.21 +import org.netbeans.modules.vcscore.VcsDirContainer;
   24.22 +import org.netbeans.modules.vcscore.commands.*;
   24.23 +import org.netbeans.modules.vcscore.cmdline.VcsListRecursiveCommand;
   24.24 +import org.netbeans.modules.vcscore.cmdline.UserCommand;
   24.25 +import org.netbeans.modules.vcscore.util.*;
   24.26 +
   24.27  /**
   24.28   * This class performes the recursive refresh of a directory tree by execution
   24.29   * only one CVS command recursively.
   24.30   *
   24.31   * @author  Martin Entlicher
   24.32   */
   24.33 -public class CvsListRecursiveCommand extends VcsListRecursiveCommand implements RegexListener {
   24.34 +public class CvsListRecursiveCommand extends VcsListRecursiveCommand implements CommandDataOutputListener {
   24.35  
   24.36      private Debug E=new Debug("CvsListRecursiveCommand",true); // NOI18N
   24.37      private Debug D=E;
   24.38  
   24.39 -    private static final String[] examiningStrs = {"status: Examining", "server: Examining"}; // NOI18N
   24.40      private static final String ATTIC = "Attic"; // NOI18N
   24.41      private static final String[] EMPTY_DIR = {""}; // NOI18N
   24.42 -    /** The name of the directory with CVS info.
   24.43 -     */
   24.44 -    //private static final String CVS_DIRNAME = "CVS";
   24.45 -    /** The names of files in CVS directory.
   24.46 -     */
   24.47 -    //private static final String[] CVS_DIRCONTENT = {"Entries", "Repository", "Root"};
   24.48 -    /** The relative path to CVS/Repository
   24.49 -     */
   24.50 -    private static final String REPOSITORY_PATH = "CVS" + File.separator + "Repository";
   24.51 +    private static final String MATCH_REPOSITORY_REVISION = "Repository revision:"; // NOI18N
   24.52 +    private static final String REPOSITORY_PATH = CvsListCommand.CVS_DIRNAME + File.separator
   24.53 +                                                  + "Repository"; // NOI18N
   24.54 +    private static final String[] ABSOLUTE_REPOSITORY_REGEXS = { "^/.*$", "^[a-zA-Z]:\\.*" };
   24.55  
   24.56      private String rootDir = null;
   24.57      private String dir = null; // The local dir being refreshed.
   24.58 @@ -58,37 +55,27 @@
   24.59      private boolean shouldFail = false;
   24.60  
   24.61      private StringBuffer dataBuffer=new StringBuffer(4096);
   24.62 -    //private StringBuffer errorBuffer = new StringBuffer(256);
   24.63 -    private NoRegexListener stdoutNRListener = null;
   24.64 -    private NoRegexListener stderrNRListener = null;
   24.65 -    private RegexListener stderrListener = null;
   24.66 +    private CommandOutputListener stdoutNRListener = null;
   24.67 +    private CommandOutputListener stderrNRListener = null;
   24.68 +    private CommandDataOutputListener stderrListener = null;
   24.69  
   24.70      private String dataRegex = null;
   24.71      private String errorRegex = null;
   24.72      private String input = null;
   24.73 -    private long timeout = 0;
   24.74 -    //private Hashtable modulesPaths = new Hashtable();
   24.75 -    //private CvsModuleParser moduleParser = new CvsModuleParser();
   24.76 -    //private StringBuffer moduleDefs = new StringBuffer();
   24.77      private Vector examiningPaths = new Vector();
   24.78      private Hashtable workReposPaths = new Hashtable();
   24.79      private int fsRootPathLength = 0;
   24.80      private String lastPathConverted = null;
   24.81      private boolean lastPathFileDependent = false;
   24.82      private ArrayList lastWorkingPaths = null;
   24.83 -
   24.84 -    /*
   24.85 -    private VcsDirContainer filesByNameCont = null;
   24.86 -    private VcsDirContainer filesByNameContPath = null;
   24.87 -    private Hashtable filesByName = null;
   24.88 -    */
   24.89 +    private VcsFileSystem fileSystem = null;
   24.90  
   24.91      /** Creates new CvsListRecursiveCommand */
   24.92      public CvsListRecursiveCommand() {
   24.93      }
   24.94  
   24.95      private void initVars(Hashtable vars, String[] args) {
   24.96 -        this.cmd = MiscStuff.array2string(args);
   24.97 +        this.cmd = VcsUtilities.array2string(args);
   24.98  
   24.99          this.rootDir = (String) vars.get("ROOTDIR"); // NOI18N
  24.100          if (this.rootDir == null) {
  24.101 @@ -139,20 +126,35 @@
  24.102          D.deb("dataRegex = "+dataRegex+", errorRegex = "+errorRegex); // NOI18N
  24.103          this.input = (String) vars.get("INPUT"); // NOI18N
  24.104          if (this.input == null) this.input = "Cancel/n"; // NOI18N
  24.105 -        this.timeout = ((Long) vars.get("TIMEOUT")).longValue(); // NOI18N
  24.106      }
  24.107      
  24.108 +    public void setFileSystem(VcsFileSystem fileSystem) {
  24.109 +        this.fileSystem = fileSystem;
  24.110 +    }
  24.111 +
  24.112 +    private boolean isAbsoluteRepository(String line) {
  24.113 +        try {
  24.114 +            for (int i = 0; i < ABSOLUTE_REPOSITORY_REGEXS.length; i++) {
  24.115 +                RE pattern = new RE(ABSOLUTE_REPOSITORY_REGEXS[i]);
  24.116 +                if (pattern.match(line)) return true;
  24.117 +            }
  24.118 +        } catch (RESyntaxException exc) {
  24.119 +            org.openide.TopManager.getDefault().notifyException(exc);
  24.120 +        }
  24.121 +        return false;
  24.122 +    }
  24.123 +
  24.124      private void addRepositoryPath(String localDir, File repository) {
  24.125          FileInputStream in = null;
  24.126          try {
  24.127              in = new FileInputStream(repository);
  24.128              BufferedReader reader = new BufferedReader(new InputStreamReader(in));
  24.129              String line = reader.readLine();
  24.130 -            if (line.length() > 0) {
  24.131 +            if (line != null && line.length() > 0) {
  24.132                  String localPath = "";
  24.133                  if (localDir.length() > fsRootPathLength) localPath = localDir.substring(fsRootPathLength);
  24.134 -                int index = line.indexOf(cvsRepository);
  24.135 -                if (index < 0) {
  24.136 +                //int index = line.indexOf(cvsRepository);
  24.137 +                if (!isAbsoluteRepository(line)) {
  24.138                      line = cvsRepository + "/" + line; // Get the full path to the repository
  24.139                  }
  24.140                  workReposPaths.put(localPath.replace(File.separatorChar, '/'), line);
  24.141 @@ -187,95 +189,50 @@
  24.142          }
  24.143      }
  24.144  
  24.145 -    /*
  24.146 -    * Test if the directory was checked out by CVS or not.
  24.147 -    * @param dir the directory name to test
  24.148 -    * @return <code>true</code> if the directory was created by CVS, <code>false</code> if not.
  24.149 -    *
  24.150 -    private boolean isCVSDirectory(File dir) {
  24.151 -        //D.deb("TESTING CVS dir "+dir);
  24.152 -        //System.out.println("TESTING CVS dir "+dir);
  24.153 -        File subdir = new File(dir, CVS_DIRNAME);
  24.154 -        if (!subdir.isDirectory()) return false;
  24.155 -        for(int i = 0; i < CVS_DIRCONTENT.length; i++) {
  24.156 -            File cvsFile = new File(subdir, CVS_DIRCONTENT[i]);
  24.157 -            if (!cvsFile.isFile()) return false;
  24.158 -        }
  24.159 -        return true;
  24.160 -    }
  24.161 -     */
  24.162 -    
  24.163      //-----------------------------------
  24.164      private void runStatusCommand(Hashtable vars){
  24.165 -        Variables v = new Variables();
  24.166 -        String prepared = v.expand(vars, cmd, true);
  24.167 +        String prepared = Variables.expand(vars, cmd, true);
  24.168  
  24.169          D.deb("prepared = "+prepared); // NOI18N
  24.170          D.deb("DIR = '"+(String) vars.get("DIR")+"'"+", dir = '"+this.dir+"'"); // NOI18N
  24.171 -        ExternalCommand ec = new ExternalCommand(prepared);
  24.172 -        if (stderrListener != null) {
  24.173 -            String[] command = { "LIST_SUB: "+prepared }; // NOI18N
  24.174 -            stderrListener.match(command);
  24.175 -        }
  24.176 -        if (stderrNRListener != null) stderrNRListener.match("LIST_SUB: "+prepared); // NOI18N
  24.177 -        ec.setTimeout(timeout);
  24.178 -        ec.setInput(input);
  24.179 -
  24.180 -        try{
  24.181 -            D.deb("stdout dataRegex = "+dataRegex); // NOI18N
  24.182 -            ec.addStdoutRegexListener(this,dataRegex);
  24.183 -        }
  24.184 -        catch (BadRegexException e) {
  24.185 -            if (stderrListener != null) {
  24.186 -                String[] elements = { "CvsList: Bad data regex "+dataRegex+"\n" }; // NOI18N
  24.187 -                stderrListener.match(elements);
  24.188 -            }
  24.189 -            shouldFail=true ;
  24.190 -        }
  24.191 -
  24.192 -        try{
  24.193 -            ec.addStderrRegexListener(new RegexListener () {
  24.194 -                                          public void match(String[] elements){
  24.195 -                                              shouldFail=true ;
  24.196 -                                          }
  24.197 -                                      },errorRegex);
  24.198 -            if (this.stderrListener != null) ec.addStderrRegexListener(stderrListener, errorRegex);
  24.199 -            ec.addStderrRegexListener(new RegexListener () {
  24.200 -                                          public void match(String[] elements) {
  24.201 +        UserCommand cmd = new UserCommand();
  24.202 +        cmd.setName("LIST_SUB_CMD");
  24.203 +        cmd.setProperty(VcsCommand.PROPERTY_EXEC, prepared);
  24.204 +        cmd.setProperty(UserCommand.PROPERTY_DATA_REGEX, dataRegex);
  24.205 +        cmd.setProperty(UserCommand.PROPERTY_ERROR_REGEX, errorRegex);
  24.206 +        // The user should be warned by the wrapper class and not the command itself.
  24.207 +        cmd.setProperty(VcsCommand.PROPERTY_IGNORE_FAIL, new Boolean(true));
  24.208 +        VcsCommandExecutor ec = fileSystem.getVcsFactory().getCommandExecutor(cmd, vars);
  24.209 +        ec.addDataOutputListener(this);
  24.210 +        ec.addDataErrorOutputListener(new CommandDataOutputListener() {
  24.211 +                                          public void outputData(String[] elements) {
  24.212                                                if (elements[0] == null || elements[0].length() == 0) return;
  24.213                                                int index = -1;
  24.214 -                                              for(int i = 0; i < examiningStrs.length; i++) {
  24.215 +                                              for(int i = 0; i < CvsListCommand.EXAMINING_STRS.length; i++) {
  24.216                                                    //D.deb("Comparing elements[0] = "+elements[0]+" to examining = "+examiningStrs[i]);
  24.217 -                                                  index = elements[0].indexOf(examiningStrs[i]);
  24.218 +                                                  index = elements[0].indexOf(CvsListCommand.EXAMINING_STRS[i]);
  24.219                                                    if (index >= 0) {
  24.220 -                                                      index += examiningStrs[i].length();
  24.221 +                                                      index += CvsListCommand.EXAMINING_STRS[i].length();
  24.222                                                        break;
  24.223                                                    }
  24.224 -                                                  //D.deb("Comp. unsuccessfull");
  24.225 +                                                  D.deb("Comp. unsuccessfull");
  24.226                                                }
  24.227                                                if (index >= 0) {
  24.228                                                    while (index < elements[0].length() && Character.isWhitespace(elements[0].charAt(index))) index++;
  24.229                                                    String path = elements[0].substring(index);
  24.230                                                    if (path.equals(".")) path = "";
  24.231 -                                                  //D.deb("Got examining: "+path);
  24.232 +                                                  D.deb("Got examining: "+path);
  24.233                                                    examiningPaths.add(path);
  24.234                                                }
  24.235                                            }
  24.236 -                                      }, dataRegex); // Because of "Examining" status
  24.237 -        }
  24.238 -        catch (BadRegexException e){
  24.239 -            if (stderrListener != null) {
  24.240 -                String[] elements = { "CvsList: Bad error regex "+errorRegex+"\n" }; // NOI18N
  24.241 -                stderrListener.match(elements);
  24.242 -            }
  24.243 -            shouldFail=true ;
  24.244 -        }
  24.245 -
  24.246 -        if (this.stdoutNRListener != null) ec.addStdoutNoRegexListener(stdoutNRListener);
  24.247 -        if (this.stderrNRListener != null) ec.addStderrNoRegexListener(stderrNRListener);
  24.248 -
  24.249 -        if( ec.exec() != ExternalCommand.SUCCESS ){
  24.250 -            shouldFail=true;
  24.251 +        });
  24.252 +        ec.addOutputListener(stdoutNRListener);
  24.253 +        ec.addErrorOutputListener(stderrNRListener);
  24.254 +        fileSystem.getCommandsPool().startExecutor(ec);
  24.255 +        fileSystem.getCommandsPool().waitToFinish(ec);
  24.256 +        if (ec.getExitStatus() != VcsCommandExecutor.SUCCEEDED) {
  24.257 +            //E.err("exec failed "+ec.getExitStatus());
  24.258 +            shouldFail = true;
  24.259          }
  24.260      }
  24.261  
  24.262 @@ -337,7 +294,6 @@
  24.263          String last_filePath = filesByNameContPath.getPath();
  24.264          //D.deb("fillHashtable(): last_filePath = '"+last_filePath+"'");
  24.265          int pos=0;
  24.266 -        int index=0;
  24.267          /* I expect file listing in the form: File: <filename> Status: <status>
  24.268           * Followed by Repository Revision: <revision path>
  24.269           * I suppose that revision path is the same as the working path.
  24.270 @@ -349,45 +305,64 @@
  24.271          //D.deb("At the beginning have dirPath = "+dirPath);
  24.272          while(pos < data.length()) {
  24.273              //int examIndex = getExaminingInfo(data, pos);
  24.274 -            int fileIndex=data.indexOf("File:",pos); // NOI18N
  24.275 -            int statusIndex=data.indexOf("Status:",pos); // NOI18N
  24.276 +            int fileIndex = data.indexOf(CvsListCommand.MATCH_FILE, pos);
  24.277 +            int statusIndex = data.indexOf(CvsListCommand.MATCH_STATUS, pos);
  24.278              if (fileIndex < 0 || statusIndex < 0) {
  24.279                  pos = data.length();
  24.280                  continue;
  24.281              }
  24.282 +            int endFileIndex = data.indexOf(CvsListCommand.FILE_SEPARATOR, statusIndex);
  24.283 +            if (endFileIndex < 0) endFileIndex = data.length() - 1;
  24.284              int nextIndex=data.indexOf("\n",statusIndex); // NOI18N
  24.285              if (nextIndex < 0) {
  24.286                  nextIndex = data.length()-1;
  24.287              }
  24.288              //D.deb("fillHashtable: fileIndex = "+fileIndex+", statusIndex = "+statusIndex); // NOI18N
  24.289 -            fileIndex+="File:".length(); // NOI18N
  24.290 +            fileIndex += CvsListCommand.MATCH_FILE.length();
  24.291              String fileName=data.substring(fileIndex,statusIndex).trim();
  24.292              int i=-1;
  24.293              if( (i=fileName.indexOf("no file")) >=0  ){ // NOI18N
  24.294                  fileName=fileName.substring(i+7).trim();
  24.295              }
  24.296 -            //D.deb("fileName="+fileName); // NOI18N
  24.297 -
  24.298 -            String fileDetails=data.substring(index,nextIndex);
  24.299 -            //D.deb("fileDetails="+fileDetails); // NOI18N
  24.300 -
  24.301 -            int eolIndex=data.indexOf("\n",statusIndex); // NOI18N
  24.302 -            String fileStatus="Unknown"; // NOI18N
  24.303 -
  24.304 -            if( statusIndex>=0 && eolIndex>=0 ){
  24.305 -                statusIndex+="Status:".length(); // NOI18N
  24.306 -                fileStatus=data.substring(statusIndex,eolIndex).trim();
  24.307 +            int[] index = new int[] { statusIndex };
  24.308 +            String fileStatus = CvsListCommand.getAttribute(data, CvsListCommand.MATCH_STATUS, index);
  24.309 +            if (fileStatus == null) {
  24.310 +                fileStatus = CvsListCommand.STATUS_UNKNOWN;
  24.311              }
  24.312 -            //D.deb("fileStatus="+fileStatus); // NOI18N
  24.313 -            int repositoryIndex = data.indexOf("Repository revision:", statusIndex);
  24.314 +            String fileRevision = CvsListCommand.getAttribute(data, CvsListCommand.MATCH_REVISION, index);
  24.315 +            String fileDate = "";
  24.316 +            String fileTime = "";
  24.317 +            if (fileRevision == null) {
  24.318 +                fileRevision = "";
  24.319 +            } else {
  24.320 +                String revInfo = fileRevision;
  24.321 +                int endRevIndex = fileRevision.indexOf(" ");
  24.322 +                int endRevIndex1 = fileRevision.indexOf("\t");
  24.323 +                if (endRevIndex1 >= 0 && endRevIndex1 < endRevIndex) endRevIndex = endRevIndex1;
  24.324 +                if (endRevIndex < 0) endRevIndex = revInfo.length();
  24.325 +                fileRevision = revInfo.substring(0, endRevIndex);
  24.326 +                revInfo = revInfo.substring(endRevIndex).trim();
  24.327 +            }
  24.328 +            String fileStickyTag = CvsListCommand.getAttribute(data, CvsListCommand.MATCH_STICKY_TAG, index);
  24.329 +            if (fileStickyTag == null || index[0] > endFileIndex
  24.330 +                || CvsListCommand.STICKY_NONE.equals(fileStickyTag)) fileStickyTag = "";
  24.331 +            else {
  24.332 +                int spaceIndex = fileStickyTag.indexOf(" ");
  24.333 +                if (spaceIndex > 0) fileStickyTag = fileStickyTag.substring(0, spaceIndex);
  24.334 +            }
  24.335 +            String fileStickyDate = CvsListCommand.getAttribute(data, CvsListCommand.MATCH_STICKY_DATE, index);
  24.336 +            if (fileStickyDate == null || index[0] > endFileIndex
  24.337 +                || CvsListCommand.STICKY_NONE.equals(fileStickyDate)) fileStickyDate = "";
  24.338 +            String fileSticky = (fileStickyTag + " " + fileStickyDate).trim();
  24.339 +            int repositoryIndex = data.indexOf(MATCH_REPOSITORY_REVISION, statusIndex);
  24.340              if (repositoryIndex < 0) {
  24.341                  pos = data.length();
  24.342                  continue;
  24.343              }
  24.344 -            repositoryIndex += "Repository revision:".length();
  24.345 +            repositoryIndex += MATCH_REPOSITORY_REVISION.length();
  24.346              String[] filePaths = getFilePaths(data, repositoryIndex, fileName);
  24.347 -            //D.deb("fillHashtable(): have filePaths = "+MiscStuff.arrayToString(filePaths));
  24.348 -            //System.out.println("fillHashtable(): for file = "+fileName+", have filePaths = "+MiscStuff.arrayToString(filePaths));
  24.349 +            //D.deb("fillHashtable(): have filePaths = "+VcsUtilities.arrayToString(filePaths));
  24.350 +            //System.out.println("fillHashtable(): for file = "+fileName+", have filePaths = "+VcsUtilities.arrayToString(filePaths));
  24.351              if (filePaths != null && (filePaths.length > 1 || (filePaths.length == 1 && !filePaths[0].equals(last_filePath)))) {
  24.352                  int len = filePaths.length;
  24.353                  for(int j = 0; j < len; j++) {
  24.354 @@ -403,27 +378,27 @@
  24.355                          filesByNameContPath.setElement(filesByName);
  24.356                      }
  24.357                      //D.deb("created new Container with path: "+filePaths[j]);
  24.358 -                    String[] fileStatuses = new String[2];
  24.359 +                    String[] fileStatuses = new String[6];
  24.360                      fileStatuses[0] = fileName;
  24.361                      fileStatuses[1] = fileStatus;
  24.362 +                    fileStatuses[2] = fileRevision;
  24.363 +                    fileStatuses[3] = fileTime;
  24.364 +                    fileStatuses[4] = fileDate;
  24.365 +                    fileStatuses[5] = fileSticky;
  24.366                      filesByName.put(fileName, fileStatuses);
  24.367                  }
  24.368                  if (len == 1) last_filePath = filePaths[0];
  24.369              } else if (filePaths != null) {
  24.370 -                String[] fileStatuses = new String[2];
  24.371 +                String[] fileStatuses = new String[6];
  24.372                  fileStatuses[0] = fileName;
  24.373                  fileStatuses[1] = fileStatus;
  24.374 +                fileStatuses[2] = fileRevision;
  24.375 +                fileStatuses[3] = fileTime;
  24.376 +                fileStatuses[4] = fileDate;
  24.377 +                fileStatuses[5] = fileSticky;
  24.378                  filesByName.put(fileName, fileStatuses);
  24.379              }
  24.380 -
  24.381 -            //D.deb("fillHashTable: "+"fileName="+fileName+", fileStatus="+fileStatus); // NOI18N
  24.382 -
  24.383              pos = repositoryIndex;
  24.384 -            //fileIndex=data.indexOf("File:",pos); // NOI18N
  24.385 -            //if (examIndex > 0 && examIndex < fileIndex) {
  24.386 -            //examining = furtherExamining(data, examIndex += examiningStr.length());
  24.387 -            //examIndex = data.indexOf(examiningStr, examIndex);
  24.388 -            //}
  24.389          }
  24.390      }
  24.391  
  24.392 @@ -435,8 +410,8 @@
  24.393          //D.deb("addDirName("+filePath+", "+filesByNameCont+"), filesByNameCont.path = "+filesByNameCont.getPath());
  24.394          if (filePath.length() == 0) return;
  24.395          String[] fileStatuses = new String[2];
  24.396 -        String dirName = MiscStuff.getFileNamePart(filePath) + "/";
  24.397 -        String dirPath = MiscStuff.getDirNamePart(filePath);
  24.398 +        String dirName = VcsUtilities.getFileNamePart(filePath) + "/";
  24.399 +        String dirPath = VcsUtilities.getDirNamePart(filePath);
  24.400          //D.deb("dirName = "+dirName+", dirPath = "+dirPath);
  24.401          fileStatuses[0] = dirName;
  24.402          fileStatuses[1] = "";
  24.403 @@ -494,9 +469,10 @@
  24.404       * @param errorRegex the regular expression for parsing the error output
  24.405       */
  24.406      public boolean listRecursively(Hashtable vars, String[] args, VcsDirContainer filesByNameCont,
  24.407 -                                   NoRegexListener stdoutNRListener, NoRegexListener stderrNRListener,
  24.408 -                                   RegexListener stdoutListener, String dataRegex,
  24.409 -                                   RegexListener stderrListener, String errorRegex) {
  24.410 +                                   CommandOutputListener stdoutNRListener,
  24.411 +                                   CommandOutputListener stderrNRListener,
  24.412 +                                   CommandDataOutputListener stdoutListener, String dataRegex,
  24.413 +                                   CommandDataOutputListener stderrListener, String errorRegex) {
  24.414  
  24.415          this.stdoutNRListener = stdoutNRListener;
  24.416          this.stderrNRListener = stderrNRListener;
  24.417 @@ -532,7 +508,7 @@
  24.418       * Matches the standard output of the command.
  24.419       * @param elements a line of output
  24.420       */
  24.421 -    public void match(String[] elements) {
  24.422 +    public void outputData(String[] elements) {
  24.423          dataBuffer.append(elements[0]+"\n"); // NOI18N
  24.424          //D.deb("match: append line '"+elements[0]+"'"); // NOI18N
  24.425      }
    25.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/passwd/CVSPasswd.java	Mon Jan 22 13:24:46 2001 +0000
    25.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/passwd/CVSPasswd.java	Mon Jan 22 20:58:06 2001 +0000
    25.3 @@ -30,9 +30,10 @@
    25.4  import org.openide.*;
    25.5  import org.openide.util.*;
    25.6  
    25.7 -import org.netbeans.modules.vcs.util.*;
    25.8 -import org.netbeans.modules.vcs.cmdline.*;
    25.9 -import org.netbeans.modules.vcs.cmdline.exec.*;
   25.10 +import org.netbeans.modules.vcscore.util.*;
   25.11 +import org.netbeans.modules.vcscore.commands.*;
   25.12 +
   25.13 +import org.netbeans.modules.vcs.cmdline.CvsFileSystem;
   25.14  
   25.15  /** The purpose of this class is to handle everything around pserver authentication 
   25.16   * and the .cvspass file stuff. It finds, reads and writes to the file. If the configuration is not found in the file,
   25.17 @@ -336,34 +337,30 @@
   25.18       * @return true when the login was successfull, false otherways
   25.19       */
   25.20      public static boolean checkLogin(CvsFileSystem fs, StringBuffer message) throws UnknownHostException, IOException {
   25.21 -        UserCommand cmd = fs.getCommand("LOGIN_CHECK");
   25.22 +        VcsCommand cmd = fs.getCommand("LOGIN_CHECK");
   25.23          if (cmd == null) return true; // I have no way to check the login => believe that it is O.K.
   25.24 -        final ExecuteCommand es = new ExecuteCommand(fs, cmd, fs.getVariablesAsHashtable());
   25.25 +        //final ExecuteCommand es = new ExecuteCommand(fs, cmd, fs.getVariablesAsHashtable());
   25.26 +        VcsCommandExecutor vce = fs.getVcsFactory().getCommandExecutor(cmd, fs.getVariablesAsHashtable());
   25.27          final StringBuffer loginCommandOutput = new StringBuffer();
   25.28 -        es.setErrorNoRegexListener(new NoRegexListener() {
   25.29 -            public void match(String element) {
   25.30 +        vce.addErrorOutputListener(new CommandOutputListener() {
   25.31 +            public void outputLine(String element) {
   25.32                  if (element != null) {
   25.33                      loginCommandOutput.delete(0, loginCommandOutput.length());
   25.34                      loginCommandOutput.append(element+"\n");
   25.35                  }
   25.36              }
   25.37          });
   25.38 -        es.setOutputNoRegexListener(new NoRegexListener() {
   25.39 -            public void match(String element) {
   25.40 +        vce.addOutputListener(new CommandOutputListener() {
   25.41 +            public void outputLine(String element) {
   25.42                  if (element != null) {
   25.43                      loginCommandOutput.delete(0, loginCommandOutput.length());
   25.44                      loginCommandOutput.append(element+"\n");
   25.45                  }
   25.46              }
   25.47          });
   25.48 -        es.start();
   25.49 -        try {
   25.50 -            es.join();
   25.51 -        } catch (InterruptedException exc) {
   25.52 -            // Command was interrupted.
   25.53 -            return false; // Someone interrupted me => suppose that something's wrong
   25.54 -        }
   25.55 -        if (es.getExitStatus() == ExternalCommand.SUCCESS) return true;
   25.56 +        fs.getCommandsPool().startExecutor(vce);
   25.57 +        fs.getCommandsPool().waitToFinish(vce);
   25.58 +        if (vce.getExitStatus() == VcsCommandExecutor.SUCCEEDED) return true;
   25.59          String output = loginCommandOutput.toString().trim();
   25.60          message.delete(0, message.length());
   25.61          message.append(output);
    26.1 --- a/vcscvs/src/org/netbeans/modules/vcs/cmdline/passwd/LoginDialog.java	Mon Jan 22 13:24:46 2001 +0000
    26.2 +++ b/vcscvs/src/org/netbeans/modules/vcs/cmdline/passwd/LoginDialog.java	Mon Jan 22 20:58:06 2001 +0000
    26.3 @@ -16,8 +16,9 @@
    26.4  import java.util.ArrayList;
    26.5  import javax.swing.SwingUtilities;
    26.6  
    26.7 +import org.netbeans.modules.vcscore.util.VcsUtilities;
    26.8 +
    26.9  import org.netbeans.modules.vcs.cmdline.CvsFileSystem;
   26.10 -import org.netbeans.modules.vcs.util.MiscStuff;
   26.11  
   26.12  /**
   26.13   *
   26.14 @@ -46,7 +47,7 @@
   26.15          setTitle(java.util.ResourceBundle.getBundle("org/netbeans/modules/vcs/cmdline/passwd/Bundle").getString("LoginDialog.title"));
   26.16          pack ();
   26.17          fileSystem = fs;
   26.18 -        MiscStuff.removeEnterFromKeymap(passwordField);
   26.19 +        VcsUtilities.removeEnterFromKeymap(passwordField);
   26.20          getRootPane().setDefaultButton(loginButton);
   26.21      }
   26.22  
   26.23 @@ -295,7 +296,7 @@
   26.24      
   26.25      public static LoginDialog createDialog(CvsFileSystem fs) {
   26.26          LoginDialog dialog = new LoginDialog (new javax.swing.JFrame (), true, fs);
   26.27 -        org.netbeans.modules.vcs.util.MiscStuff.centerWindow(dialog);
   26.28 +        VcsUtilities.centerWindow(dialog);
   26.29          return dialog;
   26.30      }
   26.31