/*
* Copyright 2015 Corpuslinguistic working group Humboldt University Berlin.
*
* 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 annis.gui;
import static annis.gui.MainToolbar.LOGIN_MAXIMIZED_KEY;
import static annis.gui.MainToolbar.LOGIN_URL_KEY;
import annis.libgui.Helper;
import com.vaadin.server.ExternalResource;
import com.vaadin.server.Resource;
import com.vaadin.server.VaadinSession;
import com.vaadin.shared.ui.window.WindowMode;
import com.vaadin.ui.BrowserFrame;
import com.vaadin.ui.Window;
/**
* A window for logging in.
*
* @author Thomas Krause <krauseto@hu-berlin.de>
*/
public class LoginWindow extends Window
{
private String loginURL;
private QueryController queryController;
private boolean executeSearchAfterClose;
public LoginWindow()
{
super("ANNIS Login");
setModal(true);
setWidth("400px");
setHeight("250px");
}
@Override
public void attach()
{
super.attach();
this.loginURL = (String) VaadinSession.getCurrent().getAttribute(
LOGIN_URL_KEY);
Resource loginRes;
if (loginURL == null || loginURL.isEmpty())
{
loginRes = new ExternalResource(
Helper.getContext() + "/login");
}
else
{
loginRes = new ExternalResource(loginURL);
}
BrowserFrame frame = new BrowserFrame("login", loginRes);
frame.setWidth("100%");
frame.setHeight("100%");
setContent(frame);
String loginMaximizedRaw = (String) getSession().getAttribute(
LOGIN_MAXIMIZED_KEY);
if (Boolean.parseBoolean(loginMaximizedRaw))
{
setWindowMode(WindowMode.MAXIMIZED);
}
}
public void close(boolean loginSuccessful)
{
if(executeSearchAfterClose && loginSuccessful && queryController != null
&& !queryController.getState().getSelectedCorpora().getValue().isEmpty())
{
queryController.executeSearch(true, true);
}
super.close();
}
public QueryController getQueryController()
{
return queryController;
}
public void setQueryController(QueryController queryController)
{
this.queryController = queryController;
}
public boolean isExecuteSearchAfterClose()
{
return executeSearchAfterClose;
}
public void setExecuteSearchAfterClose(boolean executeSearchAfterClose)
{
this.executeSearchAfterClose = executeSearchAfterClose;
}
}