/* * Copyright 2014-2016 CyberVision, Inc. * * 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 org.kaaproject.kaa.server.admin.client.mvp.activity; import com.google.gwt.activity.shared.AbstractActivity; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.shared.EventBus; import com.google.gwt.event.shared.HandlerRegistration; import com.google.gwt.place.shared.Place; import com.google.gwt.user.client.ui.AcceptsOneWidget; import org.kaaproject.kaa.common.dto.KaaAuthorityDto; import org.kaaproject.kaa.server.admin.client.KaaAdmin; import org.kaaproject.kaa.server.admin.client.mvp.ClientFactory; import org.kaaproject.kaa.server.admin.client.mvp.place.GeneralPropertiesPlace; import org.kaaproject.kaa.server.admin.client.mvp.place.MailPropertiesPlace; import org.kaaproject.kaa.server.admin.client.mvp.place.UserProfilePlace; import org.kaaproject.kaa.server.admin.client.mvp.view.HeaderView; import org.kaaproject.kaa.server.admin.client.mvp.view.dialog.ChangePasswordDialog; import org.kaaproject.kaa.server.admin.client.mvp.view.widget.ActionsLabel.ActionMenuItemListener; import org.kaaproject.kaa.server.admin.client.util.Utils; import java.util.ArrayList; import java.util.List; public class HeaderActivity extends AbstractActivity implements HeaderView.Presenter { private final ClientFactory clientFactory; private final HeaderView headerView; protected List<HandlerRegistration> registrations = new ArrayList<>(); /** * Instantiates a new HeaderActivity. */ public HeaderActivity(ClientFactory clientFactory) { this.clientFactory = clientFactory; this.headerView = clientFactory.getHeaderView(); this.headerView.setPresenter(this); } @Override public void start(AcceptsOneWidget containerWidget, EventBus eventBus) { bind(headerView, eventBus); containerWidget.setWidget(headerView.asWidget()); } @Override public void onStop() { for (HandlerRegistration registration : registrations) { registration.removeHandler(); } registrations.clear(); headerView.getSettingsLabel().clearItems(); } @Override public void goTo(Place place) { clientFactory.getPlaceController().goTo(place); } private void bind(final HeaderView headerView, final EventBus eventBus) { headerView.getUsernameLabel().setText( KaaAdmin.getAuthInfo().getDisplayName()); registrations.add(headerView.getUsernameLabel().addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { goTo(new UserProfilePlace()); } })); registrations.add(headerView.getSignoutLabel().addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { KaaAdmin.signOut(); } })); headerView.getSettingsLabel().addMenuItem(Utils.constants.profile(), new ActionMenuItemListener() { @Override public void onMenuItemSelected() { goTo(new UserProfilePlace()); } }); headerView.getSettingsLabel().addMenuItem(Utils.constants.changePassword(), new ActionMenuItemListener() { @Override public void onMenuItemSelected() { showChangePasswordDialog(); } }); KaaAuthorityDto autority = KaaAdmin.getAuthInfo().getAuthority(); if (autority == KaaAuthorityDto.KAA_ADMIN) { headerView.getSettingsLabel().addMenuItem(Utils.constants.generalSettings(), new ActionMenuItemListener() { @Override public void onMenuItemSelected() { goTo(new GeneralPropertiesPlace()); } }); headerView.getSettingsLabel().addMenuItem(Utils.constants.outgoingMailSettings(), new ActionMenuItemListener() { @Override public void onMenuItemSelected() { goTo(new MailPropertiesPlace()); } }); } } private void showChangePasswordDialog() { //change password ChangePasswordDialog.Listener listener = new ChangePasswordDialog.Listener() { @Override public void onChangePassword() { } @Override public void onCancel() { } }; ChangePasswordDialog.showChangePasswordDialog(listener, KaaAdmin.getAuthInfo().getUsername(), null); } @Override public void goToHome() { clientFactory.getPlaceController().goTo(clientFactory.getHomePlace()); } }