Ru-Board.club
← Вернуться в раздел «Программы»

» Разработка редактора с древовидной структурой

Автор: xcode
Дата сообщения: 13.11.2008 22:32
Все равно будет привязка к винде. Я все это задумал ради интеграции с Visual Studio и создания распределенной базы знаний по программным проектам. Т.е. для того чтобы коллектив разработчиков документировал свой код
Хотя, в любом случае, я ориентируюсь на кроссплатформенность - разрабатывая отдельно движок Базы Знаний и отдельно GUI. При необходимости просто тупо создается новый GUI для другой ОС (точнее - берется что-то похожее из открытых проектов и немного переделывается), прилинковывается движок - и все готово

Кстати: подскажите бесплатный оконный интерфейс в стиле Visual Studio 2005/2008
основные требования:
* произвольный докинг окон
* закладки + MDI
* интерактивно настраиваемые панели инструментов и меню, т.е. чтобы можно было прямо мышью перетаскивать иконки панелей инструментов
* простота использования
* C++
Автор: Jenyay
Дата сообщения: 14.11.2008 08:35
Я видел для WTL - http://www.codeproject.com/KB/wtl/wtldockingwindows.aspx но сам не пользовался.
Автор: hammerit
Дата сообщения: 14.11.2008 08:56

Цитата:
Кстати, на счет кроссплатформенности. Может быть стоит посмотреть в сторону NVU - редактора HTML на движке мозилы? Тогда не будет привязки к винде.


Nvu умер давно, его преемник - KompoZer. Кстати...

Цитата:
В марте 2007 года Download.com объявила KompoZer лучшей бесплатной альтернативой Adobe CS3.[1]

Может действительно стоит глянуть на его исходники...


Цитата:
Все равно будет привязка к винде.

А вот это конечно очень жаль...

Цитата:
Хотя, в любом случае, я ориентируюсь на кроссплатформенность - разрабатывая отдельно движок Базы Знаний и отдельно GUI. При необходимости просто тупо создается новый GUI для другой ОС (точнее - берется что-то похожее из открытых проектов и немного переделывается), прилинковывается движок - и все готово

Если будут параллельно выпускаться версии для Винды и для других ОС (как минимум под Linux), то это нормально. А вот если будут просто выкладываться исходные коды - типа "кто хочет - переделывайте под Linux" - так думаю дело не пойдет...
Автор: GingerFox
Дата сообщения: 14.11.2008 11:02
hammerit
Главное сделать саму возможность такой вот контейнерной организации. А дальше вариантов уже может быть много. Для каких-то форматов достаточно будет только вьюера (например для графики, чтобы не превращать аутлайнер в фотошоп. Хотя опять, же, если у кого появится необходимость и он напишет простой или более сложный граф.редактор - почему бы и нет?). Какие-то форматы можно будет редактировать только если у пользователя установлен соответствующий пакет (тот же DOC например - т.е. плагин будет вызывать MS Word (не знаю, как это правильно называется - OLE?) в окно отображения листа).

Ну и наконец вариант, за который бы я голосовал - если пользователь согласен - перевод/сохранение вставляемого в окно OpenDoc и дальнейшая работа уже в этом формате.

А что касается усложнения работы и утяжеления программы... Не думаю, что такой механизм сильно усложнит и утяжелит прогу. Главное, чтобы он был. А дальше - понадобится, можно будет наполнить новым содержанием, нет - будет отрабатывать стандартный плагин ввод-вывод-правка HTML, если уж так хотите.

Что касаемо OpenDoc, я сейчас как раз вентилирую этот вопрос, как я понял, команда разработчиков OpenOffice создала и библиотеки, и платформу и SDK для работы с документами в OpenDoc формате. Как разберусь - доложу. И кстати все это богатство честно и легально бесплатное.

xcode
Думайте шире! Зачем ограничивать количество сценариев использования программы только одним, который Вы привели? Если сделать универсальный расширяемый инструмент, то он может развиваться во что угодно. Сделать правильную платформу, в которую by design встроена возможность расширения. Пример - тот же Firefox. Сам по себе, без плагинов, он не лучше IE, вся его мощь и красота - в наращиваемости, в том, что из него можно выпилить что угодно, как по оформлению (скины и пр.), так и по функционалу (плагины и расширения), сделать из него хоть "IE", хоть "Оперу". Вот пример не просто программы, а платформы.

Господа (или товарищи) - не делайте просто KompoZer с деревом слева! Ну не стоит силы тратить. Давайте платформу сделаем, а наполнение будет.
Автор: SFC
Дата сообщения: 15.11.2008 09:43
А чем будущая программа отличаться от уже существующих аналогов, т.е. что в ней будет такое, чего нет в уже существующих например:
- из тех что с открытыми кодами, например: TTC http://sourceforge.net/projects/totaltext/ правда он на делфи,
- или чисто для комплексных проектов разработки ПО: DevProject Manager, http://www.gaijin.at/dldevproject.php тоже кстати бесплатный
Автор: xcode
Дата сообщения: 15.11.2008 12:30
Спасибо, я конечно посмотрю на эти софтины.
А отличаться она будет интеграцией со средой разработки.
Представьте себе огромный проект (а еще лучше - solution с десятками связанных между собой проектов, разрабатываемых в течение многих лет), десятки тысяч файлов с исходниками, десятки разработчиков, которые еще и увольняются, и приходят новые, и т.д.
Или другая задача - открытый open-source проект, который разрабатывают люди со всего мира, а вам нужно в нем быстро разобраться.
Вот тут-то и пригодится моя программа. Основная идея в том, что исходные коды программы включают в себя комментарии специального вида, являющиеся гиперссылами на базу аутлайнера. Любой человек, желающий разобраться в проекте, может пойти разными путями
* просматривать страницы аутлайнера, начиная с корня, открывая интересующие его разделы
* при необходимости переходить к исходникам проекта,
* из исходников можно по гиперкомментариям переходить на страницы базы аутлайнера
* осуществлять поиск страниц аутлайнера по тегам, по ключевым словам и т.д.
* редактировать страницы базы знаний, добавлять их в общую базу знаний на сервере (через VCS)

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

Собственно, это и есть основная идея. Как побочная идея - просто многопользовательский аутлайнер (я уже реально столкнулся с проблемой: у меня есть комп и ноут, иногда я работаю на компе, иногда на ноуте, и очень хотелось бы синхронизировать базы TreePad'а... а еще есть комп на работе, и там своя база, которую тоже хотелось бы засинхронизировать)

Еще очень полезной является идея различных диаграмм типа UML, я хочу объединить их с аутлайнером. Должна получиться очень мощная концепция - некоторые страницы могут быть диаграммами, из них можно переходить по гиперсылкам на другие страницы и т.д.

Дальше можно копать в направлениях
* PIM, встроенная распределенная база данных
* органайзер, напоминалка
* интеграция с email, браузерами

но это уже на плагинах, эти функции для меня не являются актуальными.


Автор: SFC
Дата сообщения: 17.11.2008 09:28

Цитата:
огромный проект (а еще лучше - solution с десятками связанных между собой проектов, разрабатываемых в течение многих лет), десятки тысяч файлов с исходниками, десятки разработчиков, которые еще и увольняются, и приходят новые, и т.д.
Или другая задача - открытый open-source проект, который разрабатывают люди со всего мира, а вам нужно в нем быстро разобраться

Похоже разработчики DevProject Manager ставили перед собой аналогичную задачу, и создали инструмент для руководителя сложного проекта, но НЕ для совместной работы многих пользователей над однимпроектом. На сколько они хорошо ее реализовали - может оценить только тот кому это действительно надо.

Для полной реализиции и возможности совместной работы многих пользователей над проектами возможно все-таки понадобится полноценная система управления контентом. Конечно на www.sf.net есть большой выбор CMS или DMS, но они не на С++, а в основном РНР использует какие-либо базы данных.
Автор: xcode
Дата сообщения: 17.11.2008 13:08
DevProject Manager - это обычный аутлайнер. Точнее, даже урезанный, т.к. там заложена жесткая струткура дерева. Я же разрабатываю полноценный аутлайнер, с полностью динамической структурой дерева. То что там есть - база данных фрагментов кода. Хорошая вещь, хотя особого смысла я в ней не вижу. Но сделать можно - затраты на эту фичу минимальные.

Для многопользовательских функций, как я уже говорил, будет использоваться система контроля версий SVN. Функции SVN будут доступны через специальный плагин. Насколько я понимаю, CMS работают по тому-же принципу, хотя точно не знаю.
Но, например, wiki точно работает по принципу систем контроля версий, там есть функции отката страницы, отслеживания изменений для каждой страницы и т.д. Здесь будет все то же самое, но не на web-интерфейсе, а на программе-клиенте. Ничего подобного просто нет.

Функция интеграции со средой разработки - это вообще принципиально новая фича, аналогов ее нет в мире.

Также нет ни одного аутлайнера, который объединял бы текст, диаграммы разных типов и таблицы БД.

Сейчас я написал код для многофайлового дерева, и выяснились некоторые интересные особенности: за счет возможности многофайловой организации в дереве могут возникать циклические ссылки и ссылки из двух веток на одну ноду.Циклические я запретил сразу, т.к. дерево загружается в память целиком и циклические ссылки приведут к бесконечной рекурсии. А ссылки на одну ноду... в принципе, вполне могут быть. Но теперь возникла интересная особенность - нода одна, а ее представлений в дереве несколько, и изменение в одном месте должно приводить к изменениям во всех остальных местах


Автор: igvis
Дата сообщения: 19.11.2008 09:15
2 SFC

Цитата:
Я также имею определенные наработки в этой сфере и даже планирую сделать коммерчески успешный проект - интернет портал.


Извини, портал мне не интересен. Интересна глобальная база знаний. Типа справочника.
Вот ещё немного из ошмётков анализа.
--------------------------------------
Итак, продолжаем.
Таким образом, после некоторой аналитики мы имеем в сухом остатке следующее.
1. Практика форумов показывает их неэфективность в решении большинства вопросов.
2. Любая работа (проект) сводится к совокупности индивидуальных работ той или иной направленности.
3. Для работы индивидуумов необходима энергоположительная среда. Среда, в которой каждый индивидуум получает нечто компенсирующее его затраты на работу. В качестве таковой среды для случайных участников (стандартная ситуация на форумах) предлагается авторское право. Это право позволяет индивидууму не терять свои результаты труда и в то-же время делает их публично доступными.
4. Для повышения эффективности работы предлагается ввести "управляемость" и "структурность".
"Управляемость" означает простоту доступа и оперирования накопленной информацией (результатов индивидуальной работы).
"Структурность" означает формальное деление результатов индивидуальной работы на структурные элементы типа "аксиома/постулат", "ссылка на", "вывод", резерв.
В качестве визуальной картинки для понимания "структурности" предлагается картинка возведение здания. Однажды предложенное знание/кирпич навечно остаётся в общей структуре.
5. Дополнительно предлагается "парный" принцип позволяющий проводить фильтрацию по некоторым признакам. Принцип является важной составляющей системы.
--------------------------------------
В общем виде, я рассматриваю данную систему как среду позволяющую неорганизованное хаотичное движение людей упорядочить в направленное движение построения базы знаний. Данная система представляет собой первую версию естественного общественного интеллекта.
Автор: usr721
Дата сообщения: 05.08.2009 17:24
Наверно все таки xml а не html для хранения? html как бы частная реализация xml со своим определенным набором тегов. Как хотя бы в новом офисе - xml'ки в архиве (без сжатия файлы будут большими, xml очень избыточен тк не бинарный формат). Потом выводе преобразовывать через xslt и показвать.

Из функция нужно одновременное открытие нескольких деревьев (или баз) в табах. Экспорт в разные форматы (pdf, chm, др). Вставка рисунков скопированных прямо из FF Работа под линуск (может qt гуи).

А когда появится альфа чудо-редактора?
Автор: xcode
Дата сообщения: 05.08.2009 17:55
Насчет альфы не знаю - у меня сейчас (и вообще) куча других проектов, так что удается что-то делать урывками.
Для хранения выбран html потому что это стандартный формат документа, понимаемый любыми браузерами, редакторами, и под который есть стандартные компоненты-редакторы. Придумывать свои теги нет смысла, теги html меня вполне устраивают.

Под линукс есть wine, который гарантированно запустит простое MFC приложение

Что касается экспорта, то сейчас меня интересует в первую очередь экспорт в chm. Еще можно сделать экспорт в один длинный html, который можно открыть в MSWord и сохранить в чем угодно.

Страницы: 12

Предыдущая тема: AutoPlay Menu Builder


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.