Дневник

21.09.2025 WeekendCMS

Пользовательский интерфейс CMS работает. Да, всё очень просто, но это именно то, что мне нужно. Сегодняшний вариант сайта сделан уже при помощи собственной CMS. Рабочий вариант программы разместил в репозитории сайта в папке cms.


20.09.2025 WeekendCMS

Оказалось, что довольно трудно вести даже такой простой сайт, как у меня. Решил автоматизировать некоторую работу. Сегодня сделал маленькую систему управления контентом, пока без пользовательского интерфейса. Надеюсь, что завтра его сделаю. Планирую, что это будет всего несколько полей в единственном окошке.



14.09.2025 AspenForest

Попробовал в действии созданный язык программирования Weekend Game Language. Написал крошечную игрушку. Забавно.

Добавил пункты меню "Вид" для переключения языка интерфейса в BankViewer и WeekendTextEditor.


13.09.2025 WeekendInterpreter

Улучшение кода, описание проекта, описание моего, побыстрому придуманного, языка программирования, тестирование, правки мелкие и не очень... В общем, сегодня ничего нового.



07.09.2025 WeekendInterpreter

Занимался I18n и L10n. В меню "Вид" включил пункты "Русский" и "English" для переключения языков интерфейса. Конечно, тут же пришли идеи о том, как можно сделать расширение приложения без перекомпиляции новыми языками интерфейса. Но я обдумал это и принял решение остановиться. Не буду крошечное учебное приложение без веских причин оснащать суперсистемой поддержки языков.

Моё решение сопровождать каждый проект на двух языках добавило работы, несмотря на то, что переводчики отлично справляются с переводом несложных фраз, используемых для комментирования кода.

Но я заметил, что если в начале работы я переводил переводчиком каждую фразу, то теперь, мне становится легче иногда самому написать фразу на английском, чем копипастить в переводчик и обратно. Происходит привыкание к языку, и это здорово!


06.09.2025 WeekendInterpreter

Доделалал интерпретатор, включив в проект оставшиеся задуманные команды. В качестве тестирования написал программу примера использования команд (CommandsDemo.wgl). Это не может считаться серьёзнымм тестированием, но и интерпретатор, прямо скажу, немного уступает по сложности Java и даже ABAP :)



31.08.2025 WeekendInterpreter

Сегодня у меня две новости: первая — интерпретатор выводит сообщение "Привет, Мир!",

вторая — у меня кончился отпуск. Надо собираться и лететь домой, и это грустно.

Привет, Мир! Отпуск закончился

30.08.2025 WeekendInterpreter

Интерпретатор делаю как текстовый редактор, у которого появилось меню "Выполнить" с двумя пунктами: "Выполнить" и "Остановить". Центральная часть экрана разбита на две части. В верхней части расположен сам редактор, а в нижней - область, в которой будет отображаться всё, что выводит программа, интерпретируемая интерпретатором.

И кстати, каждый проект будет в двух формах: русскоязычной и англоязычной. Для меня это полезно.



24.08.2025

Сегодня летал на воздушном шаре.

Фото шаров 1 Фото шаров 2 Фото шаров 3 Фото шаров 4

Мы получили сертификаты:

Фото сертификатов

23.08.2025

Придумал и реализовал заготовку для этого сайта. Что-то более сложное для данного применения, думаю, не пригодится. Ну а если пригодится, тогда и придумаю нечто более сложное. А пока так:

Сейчас эти разделы ничем не заполнены. Над их наполнением ещё предстоит подумать.


А теперь я иду плавать в море, потому, что я в отпуске и сегодня:


23.08.2025 10:23 34.2C


17.08.2025 WeekendTextEditor

Интернационализация и локализация. Думаю это должно быть в любом приложении.


16.08.2025 Bankviewer

Новый READMY, интернационализация (это интересно), локализация (это интересно), перевод всех комментариев на английский язык (хочется попробовать, что из этого выйдет).



10.08.2025 WeekendInterpreter

Обдумывал идею проекта. Почитал всякое. Создание даже самого простого языка программирования полезно.

Создан репозиторий weekendinterpreter.


09.08.2025 WeekendTextEditor

Сделан новый пункт меню и кнопка на инструментальной линейке: "Заменить...". Исправлена работа "Поиск...". Теперь поиск ищет от того места, где находится курсор.

JEditorPane стал теперь составной частью класса Editor. Методы выдачи сообщений вынесены из главного класса приложения в класс Messages. Это не улучшает работу программы, но уменьшает её сложность.



03.08.2025 WeekendTextEditor

Создан репозиторий weekendtexteditor.

Переделываю Bankviewer в WeekendTextEditor.

Для редактирования текста используется JEditorPane. Добавлены пункты меню: "Создать", "Сохранить" и "Сохранить как…". Также добавлены кнопки в инструментальную линейку. При открытии файла проводится проверка наличия изменений в уже открытом файле (если таковой имеется). В меню "Правка" добавлены пункты "Отменить" и "Повторить", активность которых скоординирована с действиями пользователя. Пункт "Вырезать" теперь активизируется, если пользователь выделяет фрагмент редактируемого текста. В меню "Вид" появился пункт "Использовать моноширинный шрифт", "Увеличить шрифт", "Уменьшить шрифт" и "Размер шрифта по умолчанию". Для увеличения шрифта я использую комбинацию Ctrl+Equals, а не Ctrl+Plus, потому что так удобнее на моём ноутбуке.

Конечно, не помешало бы подправить систему поиска строки в тексте, сделать возможность искать с заменой. Но на сегодня это всё.


02.08.2025 Bankviewer

В меню "Вид" добавлены пункты "Отображать инструментальную линейку" и "Отображать строку состояния". Эти установки сохраняется между запусками программы. Приложение, а точнее, отображённая таблица, теперь открывает контекстное меню при нажатии правой кнопки мыши.



27.07.2025 Bankviewer

Добавил возможность открытия файла с помощью технологии Drag and Drop. Для этого в методе BankViewer.makeJEditorPane() создал безымянного наследника DropTarget, в котором определил метод drop(DropTargetDropEvent e). Уложился в несколько строк. Открывать файлы стало удобнее. Теперь, если файл перед вами в Проводнике, то нет необходимости указывать его в JFileChooser, перемещаясь по папкам. Достаточно перетащить файл из Проводника в окно BankViewer, и он будет отображён.

Но бывает, что после открытия трех файлов возникает необходимость снова открыть снова первый. Для этого реализовано запоминание последних открытых файлов в пункте меню "Файл" (класс LastFiles).

Кроме этого, появился новый пункт меню "Вид". Это возможность установить имеющийся на вашем компьютере Look and Fill. В приложении за это отвечает класс LAF.


26.07.2025 Bankviewer

Сделан поиск строки в отображённой таблице. Теперь программа умеет искать в отображённой банковской выписке строки так же, как это умеет делать любой текстовый редактор.

Поиск осуществляет класс Finder. Естественно, понадобилось окно для указания строки поиска и каких-то особенностей поиска (вниз, вверх, учитывать ли регистр). Для этого создан класс FinderFrame. Чтобы расположить элементы пользовательского интерфейса в этом окне, идеально подходит менеджер расположения GridBagLayout, но он уж очень "многословен", во всяком случае, мне он таким представился. Поэтому для сокращения количества строк кода я сделал некоторое упрощение GridBagLayout - класс GBL. В случае удачного поиска найденный фрагмент подсвечивается в отображённой таблице, а в случае неудачи выдаётся сообщение в строке состояния. Для реализации строки состояния создан класс StatusBar. Это JPanel с тремя текстовыми полями. Крайне правое отведено для сообщений, а остальные два решено использовать для отображения количества строк и колонок в таблице. В меню и инструментальную линейку добавлены новые пункты/кнопки. Причём пункты "Вырезать" и "Вставить" добавлены только потому, что они присутствуют в большинстве приложений. Конкретно в этом приложении они не работают.

Обнаружил, что при нажатии кнопки в инструментальной линейке фокус передаётся на нажатую кнопку. Всё правильно. Но если я выделил текст в таблице и нажал кнопку в инструментальной линейке, то выделение снимается. Неожиданно. К счастью, оказалось это легко исправить вызовом для кнопок линейки setRequestFocusEnabled(false).



20.07.2025 Bankviewer

Создал класс Convertor, который преобразует исходный файл банковской выписки в структуру, удобную для отображения.

Для генерации тестовых файлов банковской выписки сделал самостоятельную программу TestGenerator. Она находится в пакете game.weekend.bankviewer.util. В тексте программы можно указать имя файла, количество строк банковской выписки, и она сгенерирует тестовый файл.

Программа готова! Ей присвоена версия 01.00.


19.07.2025 Привет, Github и Gitflic!

Создан профиль weekend-game.

Создан репозиторий bankviewer для первого проекта. Это просмотрщик файлов банковской выписки, написанный с использованием Java. Для разработки используется Eclipse.

Сделал каркас приложения: создал JFrame как основное окно, расположил в нём JEditorPane для будущего отображения банковской выписки, сделал систему запоминания и восстановления положения окна на экране между запусками программы (класс Proper), создал меню и инструментальную линейку (класс Act), обернул JFileChooser в класс Filer для удобства использования, в главный класс приложения BankViewer вставил методы для отображения сообщений.

В результате получил приложение с интерфейсом SDI, которое пока ничего не делает. Собственно, преобразование файла «ключ-значение» в HTML-файл программа пока не содержит.