blob: a2d7b0c7721250483e6048926a5e772ed3e196c5 [file] [log] [blame]
/*=============================================================================#
# Copyright (c) 2009, 2018 Stephan Wahlbrink and others.
#
# This program and the accompanying materials are made available under the
# terms of the Eclipse Public License 2.0 which is available at
# https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
# which is available at https://www.apache.org/licenses/LICENSE-2.0.
#
# SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
#
# Contributors:
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
package org.eclipse.statet.rj.servi.webapp;
import javax.annotation.PostConstruct;
import org.eclipse.statet.rj.servi.pool.PoolNodeItem;
import org.eclipse.statet.rj.servi.pool.PoolStatus;
import org.eclipse.statet.rj.servi.pool.RServiPoolManager;
public class PoolStatusBean extends PoolStatus<PoolItemBean> {
private boolean forceRefresh;
private boolean autoRefresh;
public PoolStatusBean() {
super(FacesUtils.getPoolServer());
}
@PostConstruct
public void init() {
load();
}
private void load() {
final long stamp= System.currentTimeMillis();
final RServiPoolManager poolManager= this.server.getManager();
if (poolManager == null) {
FacesUtils.addErrorMessage(null, "The pool is currently not available.");
}
refresh(poolManager, stamp);
}
@Override
protected PoolNodeItem createPoolItem(final Object itemData, final long stamp) {
return new PoolItemBean(itemData, stamp);
}
@Override
protected PoolItemBean createNodeState(final PoolNodeItem item) {
return (PoolItemBean) item;
}
public synchronized long getStamp() {
check();
return super.getStatusStamp();
}
@Override
protected void check() {
if (this.forceRefresh) {
load();
}
}
public synchronized void forceRefresh() {
this.forceRefresh= true;
}
public String actionRefresh() {
return null;
}
public synchronized String actionEnableAutoRefresh() {
this.autoRefresh= true;
return null;
}
public synchronized String actionDisableAutoRefresh() {
this.autoRefresh= false;
return null;
}
public synchronized void setAutoRefreshEnabled(final boolean enabled) {
this.autoRefresh= enabled;
}
public synchronized boolean isAutoRefreshEnabled() {
return this.autoRefresh;
}
}