This will redraw the tree only once after all children event components
are added for channels, ust and kernel provider. Before this change the
UI was redrawn after each event.
Change-Id: If48ac0740be8884bcf52bb7f3da4a15859a3639f
Signed-off-by: Bernd Hufmann <Bernd.Hufmann@ericsson.com>
Reviewed-on: https://git.eclipse.org/r/62200
Reviewed-by: Hudson CI
Reviewed-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
Tested-by: Matthew Khouzam <matthew.khouzam@ericsson.com>
package org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl;
package org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl;
+import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Iterator;
import java.util.List;
* @param eventInfos - events information to set.
*/
public void setEventInfo(List<IBaseEventInfo> eventInfos) {
* @param eventInfos - events information to set.
*/
public void setEventInfo(List<IBaseEventInfo> eventInfos) {
+ List<ITraceControlComponent> eventComponents = new ArrayList<>();
for (Iterator<IBaseEventInfo> iterator = eventInfos.iterator(); iterator.hasNext();) {
IBaseEventInfo baseEventInfo = iterator.next();
BaseEventComponent component = new BaseEventComponent(baseEventInfo.getName(), this);
component.setEventInfo(baseEventInfo);
for (Iterator<IBaseEventInfo> iterator = eventInfos.iterator(); iterator.hasNext();) {
IBaseEventInfo baseEventInfo = iterator.next();
BaseEventComponent component = new BaseEventComponent(baseEventInfo.getName(), this);
component.setEventInfo(baseEventInfo);
+ eventComponents.add(component);
+ setChildren(eventComponents);
for (Iterator<ITraceControlComponent> iterator = children.iterator(); iterator.hasNext();) {
ITraceControlComponent traceControlComponent = iterator.next();
fChildren.add(traceControlComponent);
for (Iterator<ITraceControlComponent> iterator = children.iterator(); iterator.hasNext();) {
ITraceControlComponent traceControlComponent = iterator.next();
fChildren.add(traceControlComponent);
- fireComponentChanged(this);
+ fireComponentChanged(this);
fListeners.remove(listener);
}
}
fListeners.remove(listener);
}
}
@Override
public void fireComponentAdded(ITraceControlComponent parent, ITraceControlComponent component) {
if (component == null) {
@Override
public void fireComponentAdded(ITraceControlComponent parent, ITraceControlComponent component) {
if (component == null) {
@Override
public void fireComponentChanged(ITraceControlComponent component) {
if (component == null) {
@Override
public void fireComponentChanged(ITraceControlComponent component) {
if (component == null) {
package org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl;
package org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl;
+import java.util.ArrayList;
+import java.util.List;
+
import org.eclipse.tracecompass.internal.lttng2.control.core.model.IBaseEventInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.IUstProviderInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.UstProviderInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.IBaseEventInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.IUstProviderInfo;
import org.eclipse.tracecompass.internal.lttng2.control.core.model.impl.UstProviderInfo;
public void setUstProvider(IUstProviderInfo providerInfo) {
fProviderInfo = providerInfo;
IBaseEventInfo[] events = providerInfo.getEvents();
public void setUstProvider(IUstProviderInfo providerInfo) {
fProviderInfo = providerInfo;
IBaseEventInfo[] events = providerInfo.getEvents();
+ List<ITraceControlComponent> eventComponents = new ArrayList<>();
for (int i = 0; i < events.length; i++) {
BaseEventComponent component = new BaseEventComponent(events[i].getName(), this);
component.setEventInfo(events[i]);
for (int i = 0; i < events.length; i++) {
BaseEventComponent component = new BaseEventComponent(events[i].getName(), this);
component.setEventInfo(events[i]);
+ eventComponents.add(component);
+ setChildren(eventComponents);
setName(getName() + " [PID=" + fProviderInfo.getPid() + "]"); //$NON-NLS-1$ //$NON-NLS-2$
}
setName(getName() + " [PID=" + fProviderInfo.getPid() + "]"); //$NON-NLS-1$ //$NON-NLS-2$
}