/*******************************************************************************
* Copyright (c) 2012-2017 Codenvy, S.A.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Codenvy, S.A. - initial API and implementation
*******************************************************************************/
package org.eclipse.che.ide.notification;
import org.eclipse.che.ide.api.mvp.View;
import org.eclipse.che.ide.api.notification.Notification;
import org.eclipse.che.ide.api.parts.base.BaseActionDelegate;
/**
* The view of {@link NotificationManagerImpl}.
*
* @author Andrey Plotnikov
* @author Vlad Zhukovskyi
* @see {@link Notification}
*/
public interface NotificationManagerView extends View<NotificationManagerView.ActionDelegate> {
/**
* Required for delegating some functions in view.
*/
interface ActionDelegate extends BaseActionDelegate, NotificationActionDelegate {
}
/**
* Delegate events between notifications widgets.
*/
interface NotificationActionDelegate {
/**
* Handle notification <code>com.google.gwt.user.client.Event.ONCLICK</code> event.
*
* @param notification
* {@link Notification} on which onClick handled
*/
void onClick(Notification notification);
/**
* Handle notification <code>com.google.gwt.user.client.Event.ONDBLCLICK</code> event.
*
* @param notification
* {@link Notification} on which onDoubleClick handled
*/
void onDoubleClick(Notification notification);
/**
* Handle notification close event. This event fires when notification is closed automatically or manually by user.
*
* @param notification
* {@link Notification} on which onClose handled
*/
void onClose(Notification notification);
}
/**
* Set widget container into notification manager presenter. This container need to display notification row by row.
*
* @param container
* instance of {@link NotificationContainer}
*/
void setContainer(NotificationContainer container);
/**
* Manage notification manager visibility.
*
* @param visible
* true - if notification part should be showed, false - otherwise
*/
void setVisible(boolean visible);
/**
* Set title of event log part.
*
* @param title
* title that need to be set
*/
void setTitle(String title);
/**
* Scrolls the view to the bottom.
*/
void scrollBottom();
}