public LiveSessionsPage()

in wicket-devutils/src/main/java/org/apache/wicket/devutils/inspector/LiveSessionsPage.java [50:169]


	public LiveSessionsPage()
	{
		add(new NonCachingImage("bug"));

		add(new ApplicationView("application", Application.get()));

		Link<Void> link = new Link<Void>("togglelink")
		{
			private static final long serialVersionUID = 1L;

			@Override
			public void onClick()
			{
				WebApplication webApplication = (WebApplication)Application.get();
				webApplication.getRequestLoggerSettings().setRequestsWindowSize(500);
				boolean enabled = webApplication.getRequestLoggerSettings()
					.isRequestLoggerEnabled();
				webApplication.getRequestLoggerSettings().setRequestLoggerEnabled(!enabled);
			}
		};
		link.add(new Label("toggletext", new Model<String>()
		{
			private static final long serialVersionUID = 1L;

			@Override
			public String getObject()
			{
				WebApplication webApplication = (WebApplication)Application.get();
				IRequestLogger requestLogger = webApplication.getRequestLogger();
				if (requestLogger == null)
				{
					return "Enable request recording";
				}
				else
				{
					return "Disable request recording";
				}
			}
		}));
		add(link);
		add(new Label("totalSessions", new Model<Integer>()
		{
			private static final long serialVersionUID = 1L;

			@Override
			public Integer getObject()
			{
				return getRequestLogger().getTotalCreatedSessions();
			}
		}));
		add(new Label("peakSessions", new Model<Integer>()
		{
			private static final long serialVersionUID = 1L;

			@Override
			public Integer getObject()
			{
				return getRequestLogger().getPeakSessions();
			}
		}));
		add(new Label("liveSessions", new Model<Integer>()
		{
			private static final long serialVersionUID = 1L;

			@Override
			public Integer getObject()
			{
				return getRequestLogger().getPeakSessions();
			}
		}));

		IModel<List<SessionData>> sessionModel = new IModel<List<SessionData>>()
		{
			private static final long serialVersionUID = 1L;

			@Override
			public List<SessionData> getObject()
			{
				return new ArrayList<>(
					Arrays.asList(getRequestLogger().getLiveSessions()));
			}
		};
		PageableListView<SessionData> listView = new PageableListView<SessionData>("sessions",
			sessionModel, 50)
		{
			private static final long serialVersionUID = 1L;

			private final SimpleDateFormat sdf = new SimpleDateFormat("dd MMM hh:mm:ss.SSS");

			@Override
			protected void populateItem(final ListItem<SessionData> item)
			{
				final SessionData sd = item.getModelObject();
				Link<Void> link = new Link<Void>("id")
				{
					private static final long serialVersionUID = 1L;

					/**
					 * @see org.apache.wicket.markup.html.link.Link#onClick()
					 */
					@Override
					public void onClick()
					{
						setResponsePage(new RequestsPage(sd));
					}
				};
				link.add(new Label("id", new Model<>(sd.getSessionId())));
				item.add(link);
				item.add(new Label("lastRequestTime", new Model<>(sdf.format(sd.getLastActive()))));
				item.add(new Label("requestCount", new Model<>(sd.getNumberOfRequests())));
				item.add(new Label("requestsTime", new Model<>(sd.getTotalTimeTaken())));
				item.add(new Label("sessionSize",
						() -> sd.getSessionSize() >= 0 ? Bytes.bytes(sd.getSessionSize()) : "-"));
			}
		};
		add(listView);

		PagingNavigator navigator = new PagingNavigator("navigator", listView);
		add(navigator);
	}