Как заставить портлеты с одинаковым классом поддержки отображать различную информацию? - PullRequest
1 голос
/ 17 сентября 2010

У меня есть список с x количеством элементов и страница с x количеством портлетов.Каждый портлет на странице имеет один и тот же класс поддержки и доступ к моему списку, и то, что показано, меняется в зависимости от того, какой элемент списка выбран.Режим редактирования позволяет пользователю выбирать, какой элемент отображать, и я сохраняю выбранный ими элемент в объекте предпочтений за портлетом.

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

Похоже, мне придется рассчитывать, какой элемент отображать, основываясь на позиции.Если у меня есть 2 столбца и 6 строк, то элемент в столбце 2 строки 4 будет отображать элемент 8 ((строка - 1) * #columns + столбец).Это работает хорошо, за исключением того, что, когда пользователь начинает перемещать портлеты, значения портлетов меняются с позицией.

Я бы хотел «заблокировать» элемент, выбранный изначально, чтобы он не изменялся при движении,К сожалению, мне действительно нужно сохранить исходный выбранный элемент (или начальную позицию) в объекте предпочтений, но я не могу сделать это в функции doView, и processAction не вызывается до тех пор, пока портлет не переключит состояния.

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

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

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

У кого-нибудь есть идеи о том, как я могу выполнить то, что мне нужно?

Любая помощь / предложения очень ценятся.

Спасибо,

BJ

PS Я использую спецификацию Portlet 2.0 (хотя я не использую события) и Jetspeed 2.1 в качестве контейнера портлета.

1 Ответ

0 голосов
/ 12 января 2011

Я думаю, что вы не должны использовать преимущества портлетов для своего приложения. У вас нет никакого способа, кроме как использовать собственный портал, чтобы убедиться, что порядок портлета не перемещен. Я хотел бы рассмотреть все внутри одного портлета, а затем полагаться на JavaScript для столбцов и строк блоков.

...