Проблема с индексом вкладки после закрытия одной из вкладок в gwt - PullRequest
0 голосов
/ 23 мая 2011

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

Например: у меня есть 4 вкладки и закрываю третью. Я открываю 4-ю вкладку и пытаюсь что-то добавить туда, но ее индекс отображается как 3 вместо 4, так как их всего 3.

Как я могу сбросить индекс вкладки в программе или любое другое решение, где я могу прочитать правильный индекс вкладки, как это было до его удаления?

Здесь я добавляю новую вкладку и событие закрытия.

HorizontalPanel horizontalPanel = new HorizontalPanel();
Image image = new Image();
Label label = new Label("New Report: " + k);
label.setWordWrap(false);

horizontalPanel.add(label);
horizontalPanel.add(image);

image.setUrl("images/1305803163_close.png");
tabpanel.add(newTab[k], horizontalPanel);
tabindexx[k] = k;

image.addClickHandler(new ClickHandler() {
  @Override
  public void onClick(ClickEvent event) {
    tabpanel.remove(tabpanel.getTabBar().getSelectedTab());
  }
}); 

и в некоторой части кода я получаю доступ к индексу табуляции, как это

int selectedtab = tabpanel.getTabBar().getSelectedTab();

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

1 Ответ

0 голосов
/ 23 мая 2011

Это произойдет, потому что номер индекса является индексом для текущего набора вкладок.(если один закрывается, это очевидно влияет на других).

Сейчас я немного обеспокоен GWT, но я считаю, что единственный способ удалить или выбрать вкладки - использовать индекс.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...