// Copyright 2012 Google Inc. All Rights Reserved.
//
// 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 com.google.collide.client.workspace;
import com.google.collide.client.bootstrap.BootstrapSession;
import com.google.collide.client.common.BaseResources;
import com.google.collide.client.util.Elements;
import com.google.collide.mvp.CompositeView;
import com.google.collide.mvp.UiComponent;
import com.google.gwt.core.client.GWT;
import com.google.gwt.dom.client.DivElement;
import com.google.gwt.dom.client.SpanElement;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.uibinder.client.UiBinder;
import com.google.gwt.uibinder.client.UiField;
import com.google.gwt.uibinder.client.UiTemplate;
/**
* Presenter for the message displayed to a user that accesses a workspace he is
* not authorized to view.
*/
public class UnauthorizedUser extends UiComponent<UnauthorizedUser.View> {
/**
* Static factory method for {@link HeaderMenu}.
*/
public static UnauthorizedUser create(Resources res) {
return new UnauthorizedUser(new View(res));
}
/**
* Style names.
*/
public interface Css extends CssResource {
String base();
String title();
String email();
}
/**
* Images and CssResources.
*/
public interface Resources extends BaseResources.Resources {
@Source({"UnauthorizedUser.css", "com/google/collide/client/common/constants.css"})
Css unauthorizedUserCss();
}
/**
* The View for the Header.
*/
public static class View extends CompositeView<ViewEvents> {
@UiTemplate("UnauthorizedUser.ui.xml")
interface MyBinder extends UiBinder<DivElement, View> {
}
static MyBinder binder = GWT.create(MyBinder.class);
@UiField(provided = true)
final Resources res;
@UiField
SpanElement email;
public View(Resources res) {
this.res = res;
setElement(Elements.asJsElement(binder.createAndBindUi(this)));
// Set the user's email/name.
String userEmail = BootstrapSession.getBootstrapSession().getUsername();
Elements.asJsElement(email).setTextContent(userEmail);
// Wire up event handlers.
attachHandlers();
}
protected void attachHandlers() {
}
}
/**
* Events reported by the Header's View.
*/
private interface ViewEvents {
}
private UnauthorizedUser(View view) {
super(view);
}
}