Какую библиотеку использовать для отображения графических объектов и контекстного меню правой кнопкой мыши - PullRequest
1 голос
/ 24 апреля 2010

Цель: разработать веб-интерфейс NMS, который отображает топологию сети (например, коммутаторы, маршрутизаторы, ссылки, конечные хосты). Каждый узел должен быть «подвижным» (перетаскиваемым в соответствующее место вручную или их наилучшее местоположение вычисляется алгоритмически). Я должен быть в состоянии увеличить сетевой график (скажем, если есть много кластеров узлов, и я хочу сосредоточиться на конкретном кластере узлов). Я должен иметь возможность щелкнуть правой кнопкой мыши по любому узлу или ссылке и получить контекстное меню (например, «показать таблицу маршрутизации», «показать интерфейсы», «показать график использования полосы пропускания» и т. Д.).

Данные для этой топологии сети будут получены путем вызова веб-сервера на основе Apache, где серверные скрипты в python будут извлекать соответствующие данные и отправлять их через JSON веб-клиенту.

Вопрос: Я предполагаю, что какая-то библиотека / фреймворк javascript будет наиболее подходящей для этого - jQuery, Dojo, Moo и т. Д. [Я никогда раньше не использовал ни одного из них]. Какой из них наиболее рекомендуется для такого рода вещей. Что было бы легче всего узнать (скажем, через несколько месяцев).

Ответы [ 3 ]

1 голос
/ 25 апреля 2010

люди из thejit проделали несколько действительно замечательных работ в нескольких представлениях данных, используя javascript и HTML canvas.У них есть интерактивные интерфейсы, основанные на подключении узлов в сети, которые можно увеличивать и уменьшать и получать больше информации.

Я уверен, что вы можете настроить его, чтобы получить желаемый результат.1006 * Статическая структура JSON Tree используется в качестве входных данных для анимации, что также является тем, что вам нужно.

0 голосов
/ 24 апреля 2010

jQuery может помочь вам выполнять операции перетаскивания. С помощью jQuery также очень легко быстро создать приложение. Но вам нужно выполнить тест с огромным количеством узлов (коммутаторов, маршрутизаторов, ссылок, оконечных устройств), чтобы увидеть, сможет ли приложение браузера управлять вашей целью в плане сложности.

У вас есть образец для перетаскивания простых графических форм здесь: http://helpdesk.toitl.com/?w=drag_drop

Теперь в вашем приложении вам нужно просто связать каждую форму с другими. И сохраняйте ссылки, если вы перемещаете узел.

0 голосов
/ 24 апреля 2010

Учитывая сложность того, что вы спрашиваете, я бы порекомендовал Silverlight или Flash.

Если вы знаете C #, Silverlight - самый простой вариант.

jQuery потрясающий, но манипулирование 2D-графикой и выполнение сложных алгоритмов компоновки будет намного проще в C # / Silverlight.

...