asquare.gwt.tkdemo.client.TabModelUpdateController.java Source code

Java tutorial

Introduction

Here is the source code for asquare.gwt.tkdemo.client.TabModelUpdateController.java

Source

/*
 * Copyright 2007 Mat Gessel <mat.gessel@gmail.com>
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 * 
 * http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package asquare.gwt.tkdemo.client;

import asquare.gwt.sb.client.fw.ListModel;
import asquare.gwt.sb.client.fw.ListSelectionModelSingle;
import asquare.gwt.tkdemo.client.ui.AppPanelCollection;

import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;

public class TabModelUpdateController implements ValueChangeHandler<String> {
    private final AppPanelCollection m_panels;
    private final ListModel<?> m_tabBarModel;
    private final ListSelectionModelSingle m_selectionModel;

    public TabModelUpdateController(AppPanelCollection panels, ListModel<?> tabBarModel) {
        m_panels = panels;
        m_tabBarModel = tabBarModel;
        m_selectionModel = (ListSelectionModelSingle) tabBarModel.getSelectionModel();
    }

    public void onValueChange(ValueChangeEvent<String> event) {
        String historyToken = event.getValue();
        int index = m_panels.getIndexForToken(historyToken);
        if (index != -1) {
            m_selectionModel.setSelectedIndex(index);
            m_tabBarModel.update();
        }
    }
}