Warning: session_start(): open(/var/lib/php/sessions/sess_6eafvm83hgd8ekfqm383k22e5l, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
srecord noeq JTextFileEditor(File file) is Swingable {
JTextArea textArea;
JButton btnReload, btnSave;
S fileContents, savedText;
FileWatchService fileWatcher;
ReliableSingleThread rstLoad = rstWithPreDelay(1.0, r _load);
cachedVisualize {
assertNotNull(file);
savedText = fileContents = loadTextFile(file);
textArea = wordWrapTypeWriterTextArea(savedText);
onChange(textArea, -> updateSaveButton);
bindToComponent(textArea, -> {
fileWatcher = new FileWatchService;
fileWatcher.addListener(file, f -> rstLoad!);
rstLoad!;
}, -> { dispose fileWatcher; });
ret northAndCenterWithMargin(
centerAndEastWithMargin(
swing(-> JFilePathLabel(file)),
jline(
btnSave = disableButton(jbutton("Save"), r save),
btnReload = jbutton("Reload", r reload)
)),
textArea
);
}
void updateSaveButton {
setEnabled(btnSave, !eq(savedText, getText(textArea)));
}
void save {
saveTextFile(file, savedText = getText(textArea));
}
void reload {
savedText = fileContents;
setText(textArea, savedText);
}
void _load {
fileContents = loadTextFile(file);
setEnabled(btnReload, !eq(fileContents, savedText));
}
}