1123 self rootHolder addDependent:self. |
1123 self rootHolder addDependent:self. |
1124 self viewFilesInDirectoryTree addDependent:self. |
1124 self viewFilesInDirectoryTree addDependent:self. |
1125 self filterBlockHolder addDependent:self. |
1125 self filterBlockHolder addDependent:self. |
1126 ! |
1126 ! |
1127 |
1127 |
|
1128 openEditorIn:aGC forLine:ln |
|
1129 |item alreadyAccepted filename field newFileString newFilename| |
|
1130 |
|
1131 alreadyAccepted := false. |
|
1132 browser |
|
1133 closeEditorAction:[:editor | |
|
1134 alreadyAccepted ifFalse:[ |
|
1135 editor acceptAction value:(editor contents) |
|
1136 ] |
|
1137 ]. |
|
1138 |
|
1139 self allowFileOperations value ifFalse:[^ nil]. |
|
1140 |
|
1141 item := self fileList at:ln. |
|
1142 item label isString ifFalse:[ |
|
1143 field := nil |
|
1144 ] ifTrue:[ |
|
1145 field := EditField new. |
|
1146 field level:0. |
|
1147 field acceptOnReturn:true. |
|
1148 field acceptOnLeave:true. |
|
1149 field |
|
1150 acceptAction:[:x | |
|
1151 alreadyAccepted := true. |
|
1152 filename := item fileName. |
|
1153 newFileString := x asString withoutSeparators. |
|
1154 filename baseName ~= newFileString ifTrue:[ |
|
1155 (self |
|
1156 renameFile:filename |
|
1157 to:newFileString |
|
1158 update:false) |
|
1159 ifTrue:[ |
|
1160 newFilename := filename directory construct:newFileString. |
|
1161 self |
|
1162 withWaitCursorDo:[self updateAndSelect:(OrderedCollection with:newFilename)] |
|
1163 ] |
|
1164 ]. |
|
1165 aGC closeEditor. |
|
1166 (field leaveKey == #CursorUp or:[field leaveKey == #CursorDown]) ifTrue:[ |
|
1167 browser |
|
1168 keyPress:field leaveKey |
|
1169 x:0 |
|
1170 y:0 |
|
1171 ]. |
|
1172 field destroy. |
|
1173 browser requestFocus "/ takes it from my windowGroup; prevents it from shifting focus |
|
1174 ]. |
|
1175 field font:(aGC font). |
|
1176 field contents:(item label) |
|
1177 ]. |
|
1178 ^ field |
|
1179 ! |
|
1180 |
1128 postBuildAsSubcanvasWith:aBuilder |
1181 postBuildAsSubcanvasWith:aBuilder |
1129 |
1182 |
1130 super postBuildAsSubcanvasWith:aBuilder. |
1183 super postBuildAsSubcanvasWith:aBuilder. |
1131 ! |
1184 ! |
1132 |
1185 |
1133 postBuildDirBrowser:aWidget |
1186 postBuildDirBrowser:aWidget |
1134 browser := aWidget scrolledView. |
1187 browser := aWidget scrolledView. |
1135 browser hasConstantHeight:true. |
1188 browser hasConstantHeight:true. |
1136 |
1189 browser |
1137 browser openEditorAction:[:ln :aGC| |
1190 openEditorAction:[:ln :aGC | |
1138 |field item filename newFileString rename newFilename alreadyAccepted| |
1191 self openEditorIn:aGC forLine:ln |
1139 |
1192 ]. |
1140 alreadyAccepted := false. |
1193 browser multipleSelectOk:self multipleSelect |
1141 browser closeEditorAction:[:editor | |
|
1142 alreadyAccepted ifFalse:[ |
|
1143 editor acceptAction value:(editor contents). |
|
1144 ]. |
|
1145 ]. |
|
1146 |
|
1147 self allowFileOperations value ifTrue:[ |
|
1148 item := self fileList at:ln. |
|
1149 |
|
1150 item label isString ifFalse:[ |
|
1151 field := nil |
|
1152 ] ifTrue:[ |
|
1153 field := EditField new. |
|
1154 field level:0. |
|
1155 field acceptOnReturn:true. |
|
1156 field acceptOnLeave:true. |
|
1157 field acceptAction:[:x| |
|
1158 alreadyAccepted := true. |
|
1159 filename := item fileName. |
|
1160 newFileString := x asString withoutSeparators. |
|
1161 filename baseName ~= newFileString ifTrue:[ |
|
1162 (self renameFile:filename to:newFileString update:false) ifTrue:[ |
|
1163 newFilename := filename directory construct:newFileString. |
|
1164 self withWaitCursorDo:[ |
|
1165 self updateAndSelect:(OrderedCollection with:newFilename). |
|
1166 ] |
|
1167 ]. |
|
1168 ]. |
|
1169 aGC closeEditor. |
|
1170 |
|
1171 (field leaveKey == #CursorUp |
|
1172 or:[field leaveKey == #CursorDown]) ifTrue:[ |
|
1173 browser keyPress:field leaveKey x:0 y:0 |
|
1174 ]. |
|
1175 |
|
1176 field destroy. "/ takes it from my windowGroup; prevents it from shifting focus |
|
1177 browser requestFocus. |
|
1178 ]. |
|
1179 |
|
1180 field font:(aGC font). |
|
1181 field contents:(item label). |
|
1182 ]. |
|
1183 field |
|
1184 ] ifFalse:[ |
|
1185 nil |
|
1186 ] |
|
1187 ]. |
|
1188 browser multipleSelectOk:self multipleSelect. |
|
1189 ! |
1194 ! |
1190 |
1195 |
1191 postOpen |
1196 postOpen |
1192 |
1197 |
1193 "/ self windowGroup application class == FileBrowserV2 ifTrue:[ |
1198 "/ self windowGroup application class == FileBrowserV2 ifTrue:[ |