/
rgd045
/
crypt-file
ОбзорДокументацияВойти
/
rgd045
/
crypt-file
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
ДокументацияПоддержка
Политика конфиденциальностиПользовательское соглашениеПолитика использования «cookies»Согласие субъекта персональных данных
2026 ©
crypt-file/
.../ui/addvaultwizard/
..
AddVaultModule.java

refactored launcher, deleted UiLauncherModule component graph is now: Main → FxApplicationComponent → Tray, MainWindow, etc

4 года назад
AddVaultSuccessController.java

refactored launcher, deleted UiLauncherModule component graph is now: Main → FxApplicationComponent → Tray, MainWindow, etc

4 года назад
AddVaultWelcomeController.java

Single maven module (#1676)

5 лет назад
AddVaultWizardComponent.java

Single maven module (#1676)

5 лет назад
AddVaultWizardScoped.java

Single maven module (#1676)

5 лет назад
AddVaultWizardWindow.java

Single maven module (#1676)

5 лет назад
ChooseExistingVaultController.java

use new JavaFX 19 API

4 года назад
CreateNewVaultLocationController.java

Use enum for well-known local cloud storage paths and move class to commons package

4 года назад
CreateNewVaultNameController.java

Fixed Trim and Bidirectional Bind

4 года назад
CreateNewVaultPasswordController.java

reverted 1a6258e

4 года назад
CreateNewVaultRecoveryKeyController.java

Single maven module (#1676)

5 лет назад
ObservedLocationPresets.java

Apply suggestions from code review

4 года назад
ReadmeGenerator.java

Single maven module (#1676)

5 лет назад
ReadmeGenerator.java
package org.cryptomator.ui.addvaultwizard;
 
import javax.inject.Inject;
import java.util.List;
import java.util.ResourceBundle;
 
@AddVaultWizardScoped
public class ReadmeGenerator {
 
// specs: https://web.archive.org/web/20190708132914/http://www.kleinlercher.at/tools/Windows_Protocols/Word2007RTFSpec9.pdf
private static final String RTF_HEADER = "{\\rtf1\\fbidis\\ansi\\uc0\\fs32\n";
private static final String RTF_FOOTER = "}";
private static final String HEADING = "\\fs40\\qc %s";
private static final String EMPTY_PAR = "";
private static final String DONT_PAR = "\\b %s";
private static final String IDENT_PAR = " %s";
private static final String HELP_URL = "{\\field{\\*\\fldinst HYPERLINK \"http://docs.cryptomator.org/\"}{\\fldrslt http://docs.cryptomator.org}}";
 
private final ResourceBundle resourceBundle;
 
@Inject
public ReadmeGenerator(ResourceBundle resourceBundle) {
this.resourceBundle = resourceBundle;
}
 
public String createVaultStorageLocationReadmeRtf() {
return createDocument(List.of( //
String.format(HEADING, resourceBundle.getString("addvault.new.readme.storageLocation.1")), //
resourceBundle.getString("addvault.new.readme.storageLocation.2"), //
EMPTY_PAR, //
String.format(DONT_PAR, resourceBundle.getString("addvault.new.readme.storageLocation.3")), //
String.format(IDENT_PAR, resourceBundle.getString("addvault.new.readme.storageLocation.4")), //
String.format(IDENT_PAR, resourceBundle.getString("addvault.new.readme.storageLocation.5")), //
EMPTY_PAR, //
resourceBundle.getString("addvault.new.readme.storageLocation.6"), //
String.format(IDENT_PAR, resourceBundle.getString("addvault.new.readme.storageLocation.7")), //
String.format(IDENT_PAR, resourceBundle.getString("addvault.new.readme.storageLocation.8")), //
String.format(IDENT_PAR, resourceBundle.getString("addvault.new.readme.storageLocation.9")), //
EMPTY_PAR, //
String.format(resourceBundle.getString("addvault.new.readme.storageLocation.10"), HELP_URL) //
));
}
 
public String createVaultAccessLocationReadmeRtf() {
return createDocument(List.of( //
String.format(HEADING, resourceBundle.getString("addvault.new.readme.accessLocation.1")), //
resourceBundle.getString("addvault.new.readme.accessLocation.2"), //
EMPTY_PAR, //
resourceBundle.getString("addvault.new.readme.accessLocation.3"), //
EMPTY_PAR, //
resourceBundle.getString("addvault.new.readme.accessLocation.4")));
}
 
// visible for testing
String createDocument(Iterable<String> paragraphs) {
StringBuilder sb = new StringBuilder(RTF_HEADER);
for (String p : paragraphs) {
sb.append("{\\sa80 ");
appendEscaped(sb, p);
sb.append("}\\par \n");
}
sb.append(RTF_FOOTER);
return sb.toString();
}
 
// visible for testing
String escapeNonAsciiChars(CharSequence input) {
StringBuilder sb = new StringBuilder();
appendEscaped(sb, input);
return sb.toString();
}
 
private void appendEscaped(StringBuilder sb, CharSequence input) {
input.chars().forEachOrdered(c -> {
if (c < 128) {
sb.append((char) c);
} else if (c < 0xFFFF) {
sb.append("\\u").append(c);
}
});
}
 
 
}