From f0a2a4be7115f5a45c319953c78416d9be15d90a Mon Sep 17 00:00:00 2001 From: Bernd Hufmann Date: Tue, 8 Dec 2015 07:28:10 -0500 Subject: [PATCH] control: Bug 483560: Refresh UI once after adding all children events 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 Reviewed-on: https://git.eclipse.org/r/62200 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam Tested-by: Matthew Khouzam --- .../ui/views/model/impl/KernelProviderComponent.java | 5 ++++- .../control/ui/views/model/impl/TraceControlComponent.java | 4 +--- .../control/ui/views/model/impl/UstProviderComponent.java | 7 ++++++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/KernelProviderComponent.java b/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/KernelProviderComponent.java index 2992cb304c..aa42d65943 100644 --- a/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/KernelProviderComponent.java +++ b/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/KernelProviderComponent.java @@ -12,6 +12,7 @@ package org.eclipse.tracecompass.internal.lttng2.control.ui.views.model.impl; +import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -63,12 +64,14 @@ public class KernelProviderComponent extends TraceControlComponent { * @param eventInfos - events information to set. */ public void setEventInfo(List eventInfos) { + List eventComponents = new ArrayList<>(); for (Iterator iterator = eventInfos.iterator(); iterator.hasNext();) { IBaseEventInfo baseEventInfo = iterator.next(); BaseEventComponent component = new BaseEventComponent(baseEventInfo.getName(), this); component.setEventInfo(baseEventInfo); - addChild(component); + eventComponents.add(component); } + setChildren(eventComponents); } @Override diff --git a/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/TraceControlComponent.java b/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/TraceControlComponent.java index b66988853f..2712be60ff 100644 --- a/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/TraceControlComponent.java +++ b/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/TraceControlComponent.java @@ -160,8 +160,8 @@ public class TraceControlComponent implements ITraceControlComponent { for (Iterator iterator = children.iterator(); iterator.hasNext();) { ITraceControlComponent traceControlComponent = iterator.next(); fChildren.add(traceControlComponent); - fireComponentChanged(this); } + fireComponentChanged(this); } @Override @@ -274,7 +274,6 @@ public class TraceControlComponent implements ITraceControlComponent { fListeners.remove(listener); } } - @Override public void fireComponentAdded(ITraceControlComponent parent, ITraceControlComponent component) { if (component == null) { @@ -308,7 +307,6 @@ public class TraceControlComponent implements ITraceControlComponent { } } } - @Override public void fireComponentChanged(ITraceControlComponent component) { if (component == null) { diff --git a/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/UstProviderComponent.java b/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/UstProviderComponent.java index b1b297b3a1..d43a5087e4 100644 --- a/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/UstProviderComponent.java +++ b/lttng/org.eclipse.tracecompass.lttng2.control.ui/src/org/eclipse/tracecompass/internal/lttng2/control/ui/views/model/impl/UstProviderComponent.java @@ -12,6 +12,9 @@ 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; @@ -70,11 +73,13 @@ public class UstProviderComponent extends TraceControlComponent { public void setUstProvider(IUstProviderInfo providerInfo) { fProviderInfo = providerInfo; IBaseEventInfo[] events = providerInfo.getEvents(); + List eventComponents = new ArrayList<>(); for (int i = 0; i < events.length; i++) { BaseEventComponent component = new BaseEventComponent(events[i].getName(), this); component.setEventInfo(events[i]); - addChild(component); + eventComponents.add(component); } + setChildren(eventComponents); setName(getName() + " [PID=" + fProviderInfo.getPid() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } -- 2.34.1