Hello everybody,
I have created a Timeline on my application and I have enabled the date input field, but when I press the enter key, this warning is produced:
Dec 12, 2013 1:39:39 PM com.vaadin.terminal.gwt.server.AbstractCommunicationManager handleVariableBurst
WARNING: Warning: Ignoring variable change for non-existent component, VAR_PID=PID0
Dec 12, 2013 1:39:39 PM com.vaadin.terminal.gwt.server.AbstractCommunicationManager handleVariableBurst
WARNING: Warning: Ignoring variable change for non-existent component, VAR_PID=PID0
And the date is reset.
This is my source code:
public class TicketsTimeline extends Timeline {
public static final float GRAPH_MAX_LIMIT = 70f;
public static final float GRAPH_MIN_LIMIT = 0f;
private Timeline timeline;
private WebBrowser webBrowser;
private IndexedContainer proactive;
private IndexedContainer reactive;
private IndexedContainer proactiveDMS;
private IndexedContainer proactiveDSB;
private IndexedContainer proactiveFTP;
private IndexedContainer proactiveDBI;
private IndexedContainer proactiveNotSet;
private IndexedContainer proactivePharming;
private IndexedContainer proactivePhishing;
private IndexedContainer proactiveMalware;
private IndexedContainer proactiveRedirectSite;
private IndexedContainer proactiveSimilarDomain;
private IndexedContainer proactiveManInTheMiddle;
private IndexedContainer proactiveOther;
private TicketsClosedDataSource ticketsClosedDataSource;
private Company client;
private Date fromDate;
private Date toDate;
public TicketsTimeline(Company client, Date toDate) {
this.client = client;
this.fromDate = client.getCreationDate();
this.toDate = toDate;
initializeContainers();
}
private void initializeContainers() {
createContainers();
setTicketsClosedDataSource(new TicketsClosedDataSource(client.getId(), fromDate, toDate));
getTicketsClosedDataSource().fillProactiveContainer(proactive);
getTicketsClosedDataSource().fillReactiveContainer(reactive);
getTicketsClosedDataSource().fillProactiveDMSContainer(proactiveDMS);
getTicketsClosedDataSource().fillProactiveDSBContainer(proactiveDSB);
getTicketsClosedDataSource().fillProactiveFTPContainer(proactiveFTP);
getTicketsClosedDataSource().fillProactiveDBIContainer(proactiveDBI);
getTicketsClosedDataSource().fillProactiveNotSetContainer(proactiveNotSet);
getTicketsClosedDataSource().fillProactivePharmingContainer(proactivePharming);
getTicketsClosedDataSource().fillProactivePhishingContainer(proactivePhishing);
getTicketsClosedDataSource().fillProactiveMalwareContainer(proactiveMalware);
getTicketsClosedDataSource().fillProactiveRedirectSiteContainer(proactiveRedirectSite);
getTicketsClosedDataSource().fillProactiveSimilarDomainContainer(proactiveSimilarDomain);
getTicketsClosedDataSource().fillProactiveManInTheMiddleContainer(proactiveManInTheMiddle);
getTicketsClosedDataSource().fillProactiveOtherContainer(proactiveOther);
}
private void createContainers() {
proactive = createIndexedContainer();
reactive = createIndexedContainer();
proactiveDMS = createIndexedContainer();
proactiveDSB = createIndexedContainer();
proactiveFTP = createIndexedContainer();
proactiveDBI = createIndexedContainer();
proactiveNotSet = createIndexedContainer();
proactivePharming = createIndexedContainer();
proactivePhishing = createIndexedContainer();
proactiveMalware = createIndexedContainer();
proactiveRedirectSite = createIndexedContainer();
proactiveSimilarDomain = createIndexedContainer();
proactiveManInTheMiddle = createIndexedContainer();
proactiveOther = createIndexedContainer();
}
/**
* Creates an indexed container with two properties: value and timestamp.
*
* @return a container with "value, timestamp" items.
*/
private IndexedContainer createIndexedContainer() {
IndexedContainer container = new IndexedContainer();
container.addContainerProperty(Timeline.PropertyId.VALUE, Float.class, new Float(0));
container.addContainerProperty(Timeline.PropertyId.TIMESTAMP, java.util.Date.class, null);
return container;
}
private Component createTimeline() {
timeline = new Timeline();
if(webBrowser != null) {
if(webBrowser.isFirefox()) {
timeline.setStyleName("history_tickets_timeline_firefox");
} else if(webBrowser.isChrome()) {
timeline.setStyleName("history_tickets_timeline_chrome");
} else if(webBrowser.isIE()) {
timeline.setStyleName("history_tickets_timeline_ie");
} else if(webBrowser.isOpera()) {
timeline.setStyleName("history_tickets_timeline_opera");
} else {
timeline.setStyleName("history_tickets_timeline");
}
} else {
timeline.setStyleName("history_tickets_timeline");
}
timeline.setSizeFull();
timeline.setClientCacheEnabled(true);
timeline.setDateSelectEnabled(true);
timeline.setDateSelectVisible(true);
timeline.setZoomLevelsVisible(false);
timeline.setDebugId("timeline_tl");
timeline.setLocale(client.getLocale());
timeline.setUniformBarThicknessEnabled(true);
timeline.setImmediate(true);
timeline.setChartMode(ChartMode.BAR);
timeline.setVerticalAxisRange(GRAPH_MIN_LIMIT, GRAPH_MAX_LIMIT);
timeline.setVerticalGridLines(0f, 10f, 20f, 30f, 50f, 80f);
// Set the zoom levels
timeline.addZoomLevel("1d", 86400000L);
timeline.addZoomLevel("5d", 5 * 86400000L);
timeline.addZoomLevel("1m", 2629743830L);
timeline.addZoomLevel("3m", 3 * 2629743830L);
timeline.addZoomLevel("6m", 6 * 2629743830L);
timeline.addZoomLevel("1y", 31556926000L);
timeline.addZoomLevel("5y", 5 * 31556926000L);
timeline.addGraphDataSource(proactive);
timeline.setGraphCaption(proactive, "Proactive Tickets");
timeline.setGraphOutlineColor(proactive, new Color(0x00, 0xb4, 0xf0));
timeline.setGraphFillColor(proactive, null);
timeline.setVerticalAxisLegendUnit(proactive, "proactives");
timeline.addGraphDataSource(reactive);
timeline.setGraphCaption(reactive, "Reactive Tickets");
timeline.setGraphOutlineColor(reactive, new Color(0xee, 0x7c, 0x08));
timeline.setGraphFillColor(reactive, null);
timeline.setVerticalAxisLegendUnit(reactive, "reactives");
// Set the date range
if(getTicketsClosedDataSource() != null) {
if(!getTicketsClosedDataSource().getList().isEmpty()) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, -1);
timeline.setVisibleDateRange(cal.getTime(), new Date());
}
}
return timeline;
}
protected Timeline getChart() {
createTimeline();
return timeline;
}
public void showTicketsByProactivity() {
timeline.removeAllGraphDataSources();
timeline.addGraphDataSource(proactive);
timeline.setGraphCaption(proactive, "Proactive Tickets");
timeline.setGraphOutlineColor(proactive, new Color(0x00, 0xb4, 0xf0));
timeline.setGraphFillColor(proactive, null);
timeline.setVerticalAxisLegendUnit(proactive, "proactives");
timeline.addGraphDataSource(reactive);
timeline.setGraphCaption(reactive, "Reactive Tickets");
timeline.setGraphOutlineColor(reactive, new Color(0xee, 0x7c, 0x08));
timeline.setGraphFillColor(reactive, null);
timeline.setVerticalAxisLegendUnit(reactive, "reactives");
}
public void showTicketsByAttackType() {
timeline.removeAllGraphDataSources();
timeline.addGraphDataSource(proactiveNotSet);
timeline.setGraphCaption(proactiveNotSet, "Not Set");
timeline.setGraphOutlineColor(proactiveNotSet, new Color(0x00, 0xb4, 0xf0));
timeline.setGraphFillColor(proactiveNotSet, null);
timeline.setVerticalAxisLegendUnit(proactiveNotSet, "Not Set");
timeline.addGraphDataSource(proactivePharming);
timeline.setGraphCaption(proactivePharming, "Pharming");
timeline.setGraphOutlineColor(proactivePharming, new Color(0xee, 0x7c, 0x08));
timeline.setGraphFillColor(proactivePharming, null);
timeline.setVerticalAxisLegendUnit(proactivePharming, "Pharming");
timeline.addGraphDataSource(proactivePhishing);
timeline.setGraphCaption(proactivePhishing, "Phishing");
timeline.setGraphOutlineColor(proactivePhishing, new Color(159, 238, 0));
timeline.setGraphFillColor(proactivePhishing, null);
timeline.setVerticalAxisLegendUnit(proactivePhishing, "Phishing");
timeline.addGraphDataSource(proactiveMalware);
timeline.setGraphCaption(proactiveMalware, "Malware");
timeline.setGraphOutlineColor(proactiveMalware, new Color(255, 64, 64));
timeline.setGraphFillColor(proactiveMalware, null);
timeline.setVerticalAxisLegendUnit(proactiveMalware, "Malware");
timeline.addGraphDataSource(proactiveRedirectSite);
timeline.setGraphCaption(proactiveRedirectSite, "Redirect Site");
timeline.setGraphOutlineColor(proactiveRedirectSite, new Color(197, 176, 0));
timeline.setGraphFillColor(proactiveRedirectSite, null);
timeline.setVerticalAxisLegendUnit(proactiveRedirectSite, "Redirect Site");
timeline.addGraphDataSource(proactiveSimilarDomain);
timeline.setGraphCaption(proactiveSimilarDomain, "Similar Domain");
timeline.setGraphOutlineColor(proactiveSimilarDomain, new Color(255, 243, 56));
timeline.setGraphFillColor(proactiveSimilarDomain, null);
timeline.setVerticalAxisLegendUnit(proactiveSimilarDomain, "Similar Domain");
timeline.addGraphDataSource(proactiveManInTheMiddle);
timeline.setGraphCaption(proactiveManInTheMiddle, "Man In the Middle");
timeline.setGraphOutlineColor(proactiveManInTheMiddle, new Color(51, 0, 102));
timeline.setGraphFillColor(proactiveManInTheMiddle, null);
timeline.setVerticalAxisLegendUnit(proactiveManInTheMiddle, "Man In the Middle");
timeline.addGraphDataSource(proactiveOther);
timeline.setGraphCaption(proactiveOther, "Other");
timeline.setGraphOutlineColor(proactiveOther, new Color(0xee, 23, 211));
timeline.setGraphFillColor(proactiveOther, null);
timeline.setVerticalAxisLegendUnit(proactiveOther, "Other");
}
public void showTicketsByProactiveSource() {
timeline.removeAllGraphDataSources();
timeline.addGraphDataSource(proactiveDMS);
timeline.setGraphCaption(proactiveDMS, "Proactive DMS Tickets");
timeline.setGraphOutlineColor(proactiveDMS, new Color(0x00, 0xb4, 0xf0));
timeline.setGraphFillColor(proactiveDMS, null);
timeline.setVerticalAxisLegendUnit(proactiveDMS, "Proactive DMS Tickets");
timeline.addGraphDataSource(proactiveDSB);
timeline.setGraphCaption(proactiveDSB, "Proactive DSB Tickets");
timeline.setGraphOutlineColor(proactiveDSB, new Color(0xee, 0x7c, 0x08));
timeline.setGraphFillColor(proactiveDSB, null);
timeline.setVerticalAxisLegendUnit(proactiveDSB, "Proactive DSB Tickets");
timeline.addGraphDataSource(proactiveFTP);
timeline.setGraphCaption(proactiveFTP, "Proactive FTP Tickets");
timeline.setGraphOutlineColor(proactiveFTP, new Color(159, 238, 0));
timeline.setGraphFillColor(proactiveFTP, null);
timeline.setVerticalAxisLegendUnit(proactiveFTP, "Proactive FTP Tickets");
timeline.addGraphDataSource(proactiveDBI);
timeline.setGraphCaption(proactiveDBI, "Proactive DBI Tickets");
timeline.setGraphOutlineColor(proactiveDBI, new Color(255, 64, 64));
timeline.setGraphFillColor(proactiveDBI, null);
timeline.setVerticalAxisLegendUnit(proactiveDBI, "Proactive DBI Tickets");
}
public Date getVisibleSelectionStart() {
return timeline.getVisibleSelectionStart();
}
public Date getVisibleSelectionEnd() {
return timeline.getVisibleSelectionEnd();
}
public WebBrowser getWebBrowser() {
return webBrowser;
}
public void setWebBrowser(WebBrowser webBrowser) {
this.webBrowser = webBrowser;
}
public TicketsClosedDataSource getTicketsClosedDataSource() {
return ticketsClosedDataSource;
}
public void setTicketsClosedDataSource(TicketsClosedDataSource ticketsClosedDataSource) {
this.ticketsClosedDataSource = ticketsClosedDataSource;
}
}
public class HistoryPanel extends VerticalLayout implements PresentationModelListener {
private Company actualCompany;
private TicketsTimeline ticketsTimeline;
private final String PROACTIVE_REACTIVE = "Proactive and Reactive Tickets";
private final String ATTACK_TYPE = "Attack Type";
private final String PROACTIVE_SOURCE = "Proactive Source";
public HistoryPanel() {
setSpacing(true);
setMargin(true);
addStyleName("historyPanel");
//addStyleName("internalSection");
//addStyleName("fixedMargin");
setSizeFull();
}
private void buildGUI() {
actualCompany = ((DMSPortalClientData) getApplication().getUser()).getDmsClient();
Subject currentUser = SecurityUtils.getSubject();
if (!currentUser.isPermitted("VIEW:READ:" + HistoryPanel.class.getSimpleName()) && !actualCompany.isDMSClient()) {
this.getWindow().showNotification("Insufficient permission to access this panel", Window.Notification.TYPE_HUMANIZED_MESSAGE);
return;
}
AbsoluteLayout aLayout = new AbsoluteLayout();
aLayout.setHeight("535px");
aLayout.setWidth("925px");
aLayout.setMargin(true);
Label lblTitle = new Label("History");
lblTitle.addStyleName("titles");
lblTitle.addStyleName("history");
addComponent(lblTitle);
addComponent(aLayout);
String topPixels = null;
ticketsTimeline.setWebBrowser(browser);
ticketsTimeline.setZoomLevelsVisible(false);
ticketsTimeline.setHeight("495px");
ticketsTimeline.addStyleName("fixedMargin");
ticketsTimeline.addStyleName("topMargin");
Label categoriesLabel = new Label("Type");
categoriesLabel.setWidth("30px");
aLayout.addComponent(categoriesLabel, "z-index:110; top:5px; left:5px");
/* ComboBox for tickets categories */
ComboBox categoriesComboBox = new ComboBox();
categoriesComboBox.setWidth("220px");
categoriesComboBox.setValue("Proactive and Reactive Tickets");
categoriesComboBox.setNullSelectionAllowed(false);
categoriesComboBox.setImmediate(true);
categoriesComboBox.addItem(PROACTIVE_REACTIVE);
categoriesComboBox.addItem(ATTACK_TYPE);
categoriesComboBox.addItem(PROACTIVE_SOURCE);
categoriesComboBox.setValue(PROACTIVE_REACTIVE);
categoriesComboBox.addListener(new Property.ValueChangeListener() {
@Override
public void valueChange(Property.ValueChangeEvent event) {
String value = (String) event.getProperty().getValue();
if (value.equals(PROACTIVE_REACTIVE))
ticketsTimeline.showTicketsByProactivity();
if (value.equals(ATTACK_TYPE))
ticketsTimeline.showTicketsByAttackType();
if (value.equals(PROACTIVE_SOURCE))
ticketsTimeline.showTicketsByProactiveSource();
}
});
aLayout.addComponent(categoriesComboBox, "z-index:110; top:" + topPixels + "; left:50px");
}
}
I would appreciate so much if you could help me
Thanks.
Elvis Hurtado.