Lines 91-97
Link Here
|
91 |
private final SourceGroup[] folders; |
91 |
private final SourceGroup[] folders; |
92 |
private boolean isFolder; |
92 |
private boolean isFolder; |
93 |
private boolean freeFileExtension; |
93 |
private boolean freeFileExtension; |
94 |
|
94 |
private final char separatorChar; |
|
|
95 |
|
95 |
@SuppressWarnings("LeakingThisInConstructor") |
96 |
@SuppressWarnings("LeakingThisInConstructor") |
96 |
@Messages("LBL_SimpleTargetChooserPanel_Name=Name and Location") |
97 |
@Messages("LBL_SimpleTargetChooserPanel_Name=Name and Location") |
97 |
public SimpleTargetChooserPanelGUI( @NullAllowed Project project, @NonNull SourceGroup[] folders, Component bottomPanel, boolean isFolder, boolean freeFileExtension) { |
98 |
public SimpleTargetChooserPanelGUI( @NullAllowed Project project, @NonNull SourceGroup[] folders, Component bottomPanel, boolean isFolder, boolean freeFileExtension) { |
Lines 99-104
Link Here
|
99 |
this.folders = folders.clone(); |
100 |
this.folders = folders.clone(); |
100 |
this.isFolder = isFolder; |
101 |
this.isFolder = isFolder; |
101 |
this.freeFileExtension = freeFileExtension; |
102 |
this.freeFileExtension = freeFileExtension; |
|
|
103 |
this.separatorChar = getPathNameSeparator(project, folders); |
102 |
initComponents(); |
104 |
initComponents(); |
103 |
|
105 |
|
104 |
locationComboBox.setRenderer( CELL_RENDERER ); |
106 |
locationComboBox.setRenderer( CELL_RENDERER ); |
Lines 117-122
Link Here
|
117 |
|
119 |
|
118 |
setName(LBL_SimpleTargetChooserPanel_Name()); |
120 |
setName(LBL_SimpleTargetChooserPanel_Name()); |
119 |
} |
121 |
} |
|
|
122 |
|
123 |
private static char getPathNameSeparator(@NullAllowed Project project, @NonNull SourceGroup[] folders) { |
124 |
FileObject fo = null; |
125 |
if (folders != null && folders.length > 0) { |
126 |
fo = folders[0].getRootFolder(); |
127 |
} else if (project != null) { |
128 |
fo = project.getProjectDirectory(); |
129 |
} |
130 |
String separator = null; |
131 |
if (fo != null) { |
132 |
separator = (String) fo.getAttribute(FileObject.DEFAULT_PATHNAME_SEPARATOR_ATTR); |
133 |
} |
134 |
return (separator == null || separator.isEmpty()) ? File.separatorChar : separator.charAt(0); |
135 |
} |
120 |
|
136 |
|
121 |
@Messages({ |
137 |
@Messages({ |
122 |
"# 0 - original template name", |
138 |
"# 0 - original template name", |
Lines 163-169
Link Here
|
163 |
folderTextField.setText(getRelativeNativeName(rootFolder, preselectedFolder)); |
179 |
folderTextField.setText(getRelativeNativeName(rootFolder, preselectedFolder)); |
164 |
} |
180 |
} |
165 |
else if (project == null && preselectedFolder != null) { |
181 |
else if (project == null && preselectedFolder != null) { |
166 |
folderTextField.setText(preselectedFolder.getPath().replace('/', File.separatorChar)); |
182 |
folderTextField.setText(preselectedFolder.getPath().replace('/', this.separatorChar)); |
167 |
} |
183 |
} |
168 |
|
184 |
|
169 |
String ext = template == null ? "" : template.getExt(); // NOI18N |
185 |
String ext = template == null ? "" : template.getExt(); // NOI18N |
Lines 245-255
Link Here
|
245 |
// String home = System.getProperty("user.home"); |
261 |
// String home = System.getProperty("user.home"); |
246 |
// if (home != null && new File(home).isDirectory()) { |
262 |
// if (home != null && new File(home).isDirectory()) { |
247 |
// FileObject homeFileObject = FileUtil.toFileObject(FileUtil.normalizeFile(new File(home))); |
263 |
// FileObject homeFileObject = FileUtil.toFileObject(FileUtil.normalizeFile(new File(home))); |
248 |
// folderName = FileUtil.getFileDisplayName(homeFileObject) + File.separatorChar + folderName; |
264 |
// folderName = FileUtil.getFileDisplayName(homeFileObject) + this.separatorChar + folderName; |
249 |
// } |
265 |
// } |
250 |
// } |
266 |
// } |
251 |
// |
267 |
// |
252 |
return folderName.replace( File.separatorChar, '/' ); // NOI18N |
268 |
return folderName.replace( this.separatorChar, '/' ); // NOI18N |
253 |
} |
269 |
} |
254 |
} |
270 |
} |
255 |
|
271 |
|
Lines 451-457
Link Here
|
451 |
path = FileUtil.getRelativePath( root, folder ); |
467 |
path = FileUtil.getRelativePath( root, folder ); |
452 |
} |
468 |
} |
453 |
|
469 |
|
454 |
return path == null ? "" : path.replace( '/', File.separatorChar ); // NOI18N |
470 |
return path == null ? "" : path.replace( '/', this.separatorChar ); // NOI18N |
455 |
} |
471 |
} |
456 |
|
472 |
|
457 |
private void updateCreatedFolder() { |
473 |
private void updateCreatedFolder() { |
Lines 470-476
Link Here
|
470 |
( folderName.endsWith("/") || folderName.endsWith( File.separator ) || folderName.length() == 0 ? "" : "/" ) + // NOI18N |
486 |
( folderName.endsWith("/") || folderName.endsWith( File.separator ) || folderName.length() == 0 ? "" : "/" ) + // NOI18N |
471 |
documentName + (!freeFileExtension || documentName.indexOf('.') == -1 ? expectedExtension : ""); |
487 |
documentName + (!freeFileExtension || documentName.indexOf('.') == -1 ? expectedExtension : ""); |
472 |
|
488 |
|
473 |
fileTextField.setText( createdFileName.replace( '/', File.separatorChar ) ); // NOI18N |
489 |
fileTextField.setText( createdFileName.replace( '/', this.separatorChar ) ); // NOI18N |
474 |
|
490 |
|
475 |
changeSupport.fireChange(); |
491 |
changeSupport.fireChange(); |
476 |
} |
492 |
} |
Lines 491-501
Link Here
|
491 |
|
507 |
|
492 |
fo = BrowseFolders.showDialog( new SourceGroup[] { group }, |
508 |
fo = BrowseFolders.showDialog( new SourceGroup[] { group }, |
493 |
project, |
509 |
project, |
494 |
folderTextField.getText().replace( File.separatorChar, '/' ) ); // NOI18N |
510 |
folderTextField.getText().replace( this.separatorChar, '/' ) ); // NOI18N |
495 |
|
511 |
|
496 |
if ( fo != null && fo.isFolder() ) { |
512 |
if ( fo != null && fo.isFolder() ) { |
497 |
String relPath = FileUtil.getRelativePath( group.getRootFolder(), fo ); |
513 |
String relPath = FileUtil.getRelativePath( group.getRootFolder(), fo ); |
498 |
folderTextField.setText( relPath.replace( '/', File.separatorChar ) ); // NOI18N |
514 |
folderTextField.setText( relPath.replace( '/', this.separatorChar ) ); // NOI18N |
499 |
} |
515 |
} |
500 |
} |
516 |
} |
501 |
else { |
517 |
else { |
Lines 525-531
Link Here
|
525 |
if (path == null) { |
541 |
if (path == null) { |
526 |
path = fo.getPath(); |
542 |
path = fo.getPath(); |
527 |
} |
543 |
} |
528 |
folderTextField.setText( path.replace( '/', File.separatorChar ) ); // NOI18N |
544 |
folderTextField.setText( path.replace( '/', this.separatorChar ) ); // NOI18N |
529 |
} |
545 |
} |
530 |
} |
546 |
} |
531 |
} |
547 |
} |