use of org.opennms.osgi.VaadinApplicationContextImpl in project opennms by OpenNMS.
the class TopologyUI method init.
@Override
protected void init(final VaadinRequest request) {
// Register a cleanup
request.getService().addSessionDestroyListener((SessionDestroyListener) event -> m_widgetManager.removeUpdateListener(TopologyUI.this));
try {
m_headerHtml = getHeader(((VaadinServletRequest) request).getHttpServletRequest());
} catch (final Exception e) {
LOG.error("failed to get header HTML for request " + request.getPathInfo(), e.getCause());
}
// create VaadinApplicationContext
m_applicationContext = m_serviceManager.createApplicationContext(new VaadinApplicationContextCreator() {
@Override
public VaadinApplicationContext create(OnmsServiceManager manager) {
VaadinApplicationContextImpl context = new VaadinApplicationContextImpl();
context.setSessionId(request.getWrappedSession().getId());
context.setUiId(getUIId());
context.setUsername(request.getRemoteUser());
return context;
}
});
m_verticesUpdateManager = new OsgiVerticesUpdateManager(m_serviceManager, m_applicationContext);
m_serviceManager.getEventRegistry().addPossibleEventConsumer(this, m_applicationContext);
// Set the algorithm last so that the criteria and SZLs are
// in place before we run the layout algorithm.
m_graphContainer.setApplicationContext(m_applicationContext);
createLayouts();
// Set up an error handler for UI-level exceptions
setupErrorHandler();
// Add an auto refresh handler to the GraphContainer
setupAutoRefresher();
loadUserSettings();
// If no Topology Provider was selected (due to loadUserSettings(), fallback to default
if (Strings.isNullOrEmpty(m_graphContainer.getMetaTopologyId())) {
CheckedOperation defaultTopologySelectorOperation = getDefaultTopologySelectorOperation(m_bundlecontext);
// no default found, abort
Objects.requireNonNull(defaultTopologySelectorOperation, "No default GraphProvider found.");
defaultTopologySelectorOperation.execute(Lists.newArrayList(), new DefaultOperationContext(TopologyUI.this, m_graphContainer, DisplayLocation.MENUBAR));
}
// Add a request handler that parses incoming focusNode and szl query parameters
TopologyUIRequestHandler handler = new TopologyUIRequestHandler();
getSession().addRequestHandler(handler);
// deal with those in init case
handler.handleRequestParameter(request);
// Add the default criteria if we do not have already a criteria set
if (getWrappedVertexHopCriteria(m_graphContainer).isEmpty() && noAdditionalFocusCriteria()) {
List<Criteria> defaultCriteriaList = m_graphContainer.getTopologyServiceClient().getDefaults().getCriteria();
if (defaultCriteriaList != null) {
// set default
defaultCriteriaList.forEach(m_graphContainer::addCriteria);
}
}
// We set the listeners at the end, to not fire them all the time when initializing the UI
setupListeners();
// We force a reload to trigger a fireGraphChanged()
m_graphContainer.setDirty(true);
m_graphContainer.redoLayout();
// Trigger a selectionChanged
m_selectionManager.selectionChanged(m_selectionManager);
}
use of org.opennms.osgi.VaadinApplicationContextImpl in project opennms by OpenNMS.
the class NodeMapsApplication method init.
@Override
protected void init(final VaadinRequest vaadinRequest) {
m_request = vaadinRequest;
LOG.debug("initializing");
final VaadinApplicationContextImpl context = new VaadinApplicationContextImpl();
final UI currentUI = UI.getCurrent();
context.setSessionId(currentUI.getSession().getSession().getId());
context.setUiId(currentUI.getUIId());
context.setUsername(vaadinRequest.getRemoteUser());
Assert.notNull(m_alarmTable);
Assert.notNull(m_nodeTable);
final String searchString = vaadinRequest.getParameter("search");
final Integer maxClusterRadius = Integer.getInteger("gwt.maxClusterRadius", 350);
LOG.info("Starting search string: {}, max cluster radius: {}", searchString, maxClusterRadius);
m_alarmTable.setVaadinApplicationContext(context);
final EventProxy eventProxy = new EventProxy() {
@Override
public <T> void fireEvent(final T eventObject) {
LOG.debug("got event: {}", eventObject);
if (eventObject instanceof VerticesUpdateEvent) {
final VerticesUpdateEvent event = (VerticesUpdateEvent) eventObject;
final List<Integer> nodeIds = new ArrayList<>();
for (final VertexRef ref : event.getVertexRefs()) {
if ("nodes".equals(ref.getNamespace()) && ref.getId() != null) {
nodeIds.add(Integer.valueOf(ref.getId()));
}
}
m_nodeMapComponent.setSelectedNodes(nodeIds);
return;
}
LOG.warn("Unsure how to deal with event: {}", eventObject);
}
@Override
public <T> void addPossibleEventConsumer(final T possibleEventConsumer) {
LOG.debug("(ignoring) add consumer: {}", possibleEventConsumer);
/* throw new UnsupportedOperationException("Not yet implemented!"); */
}
};
m_alarmTable.setEventProxy(eventProxy);
m_nodeTable.setEventProxy(eventProxy);
createMapPanel(searchString, maxClusterRadius);
createRootLayout();
addRefresher();
// Notify the user if no tileserver url or options are set
if (!configuration.isValid()) {
new InvalidConfigurationWindow(configuration).open();
}
}
use of org.opennms.osgi.VaadinApplicationContextImpl in project opennms by OpenNMS.
the class AlarmDetailsDashlet method getDashboardComponent.
@Override
public DashletComponent getDashboardComponent() {
if (m_dashboardComponent == null) {
m_dashboardComponent = new AbstractDashletComponent() {
private AlarmTable m_alarmTable;
{
m_alarmTable = new AlarmTable("Alarms", new AlarmDaoContainer(m_alarmDao, m_transactionTemplate), m_alarmRepository);
m_alarmTable.setSizeFull();
m_alarmTable.setSortEnabled(false);
m_alarmTable.addHeaderClickListener(new Table.HeaderClickListener() {
@Override
public void headerClick(Table.HeaderClickEvent headerClickEvent) {
m_alarmTable.setSortContainerPropertyId(headerClickEvent.getPropertyId());
m_alarmTable.setSortEnabled(true);
}
});
final VaadinApplicationContextImpl context = new VaadinApplicationContextImpl();
final UI currentUI = UI.getCurrent();
context.setSessionId(currentUI.getSession().getSession().getId());
context.setUiId(currentUI.getUIId());
m_alarmTable.setVaadinApplicationContext(context);
final EventProxy eventProxy = new EventProxy() {
@Override
public <T> void fireEvent(final T eventObject) {
System.out.println("got event: {}" + eventObject);
}
@Override
public <T> void addPossibleEventConsumer(final T possibleEventConsumer) {
System.out.println("(ignoring) add consumer: {}" + possibleEventConsumer);
}
};
m_alarmTable.setEventProxy(eventProxy);
m_alarmTable.setColumnReorderingAllowed(true);
m_alarmTable.setColumnCollapsingAllowed(true);
m_alarmTable.setSortContainerPropertyId("id");
m_alarmTable.setSortAscending(false);
m_alarmTable.setCellStyleGenerator(new AlarmTableCellStyleGenerator());
m_alarmTable.addGeneratedColumn("severity", new SeverityGenerator());
m_alarmTable.addGeneratedColumn("id", new AlarmIdColumnLinkGenerator(m_alarmDao, "id"));
m_alarmTable.setVisibleColumns("id", "severity", "nodeLabel", "counter", "lastEventTime", "logMsg");
m_alarmTable.setColumnHeaders("ID", "Severity", "Node", "Count", "Last Event Time", "Log Message");
refresh();
}
@Override
public void refresh() {
List<OnmsAlarm> alarms = getAlarms();
List<Integer> alarmIds = new LinkedList<>();
if (alarms.size() > 0) {
for (OnmsAlarm onmsAlarm : alarms) {
alarmIds.add(onmsAlarm.getId());
}
} else {
alarmIds.add(0);
}
List<Restriction> restrictions = new LinkedList<>();
restrictions.add(new InRestriction("id", alarmIds));
((OnmsVaadinContainer<?, ?>) m_alarmTable.getContainerDataSource()).setRestrictions(restrictions);
setBoosted(checkBoosted(alarms));
m_alarmTable.markAsDirtyRecursive();
}
@Override
public Component getComponent() {
return m_alarmTable;
}
};
}
return m_dashboardComponent;
}
Aggregations