mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-14 12:35:22 +02:00
[228577] [rseterminal] Clean up RSE Terminal impl
This commit is contained in:
parent
c26154c003
commit
9a75a4b103
1 changed files with 30 additions and 40 deletions
|
@ -13,7 +13,6 @@
|
||||||
package org.eclipse.rse.subsystems.terminals.core;
|
package org.eclipse.rse.subsystems.terminals.core;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
|
||||||
|
|
||||||
import org.eclipse.core.runtime.IProgressMonitor;
|
import org.eclipse.core.runtime.IProgressMonitor;
|
||||||
import org.eclipse.rse.core.RSECorePlugin;
|
import org.eclipse.rse.core.RSECorePlugin;
|
||||||
|
@ -34,7 +33,7 @@ public final class TerminalServiceSubSystem extends SubSystem implements
|
||||||
|
|
||||||
protected ITerminalService _hostService = null;
|
protected ITerminalService _hostService = null;
|
||||||
|
|
||||||
private ArrayList children;
|
private ArrayList children = new ArrayList();
|
||||||
|
|
||||||
public class Refresh implements Runnable {
|
public class Refresh implements Runnable {
|
||||||
private TerminalServiceSubSystem _ss;
|
private TerminalServiceSubSystem _ss;
|
||||||
|
@ -53,14 +52,12 @@ public final class TerminalServiceSubSystem extends SubSystem implements
|
||||||
protected TerminalServiceSubSystem(IHost host,
|
protected TerminalServiceSubSystem(IHost host,
|
||||||
IConnectorService connectorService) {
|
IConnectorService connectorService) {
|
||||||
super(host, connectorService);
|
super(host, connectorService);
|
||||||
children = new ArrayList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public TerminalServiceSubSystem(IHost host,
|
public TerminalServiceSubSystem(IHost host,
|
||||||
IConnectorService connectorService, ITerminalService hostService) {
|
IConnectorService connectorService, ITerminalService hostService) {
|
||||||
super(host, connectorService);
|
super(host, connectorService);
|
||||||
_hostService = hostService;
|
_hostService = hostService;
|
||||||
children = new ArrayList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public ITerminalService getTerminalService() {
|
public ITerminalService getTerminalService() {
|
||||||
|
@ -79,47 +76,41 @@ public final class TerminalServiceSubSystem extends SubSystem implements
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeChild(TerminalElement element) {
|
public void removeChild(TerminalElement element) {
|
||||||
synchronized (children) {
|
if(element!=null){
|
||||||
if (children.size() > 0) {
|
synchronized (children) {
|
||||||
children.remove(element);
|
children.remove(element);
|
||||||
}
|
}
|
||||||
}
|
Display.getDefault().asyncExec(new Refresh(this));
|
||||||
Display.getDefault().asyncExec(new Refresh(this));
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeChild(String terminalTitle) {
|
public void removeChild(String terminalTitle) {
|
||||||
if (children.size() > 0) {
|
removeChild(getChild(terminalTitle));
|
||||||
TerminalElement element = getChild(terminalTitle);
|
|
||||||
if (element != null){
|
|
||||||
synchronized (children) {
|
|
||||||
children.remove(element);
|
|
||||||
}
|
|
||||||
Display.getDefault().asyncExec(new Refresh(this));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
public TerminalElement getChild(String terminalTitle) {
|
public TerminalElement getChild(String terminalTitle) {
|
||||||
if (children != null) {
|
Object[] children = getChildren();
|
||||||
Iterator iterator = children.iterator();
|
for (int i = 0, e = children.length; i < e; i++) {
|
||||||
while (iterator.hasNext()){
|
TerminalElement element = (TerminalElement)children[i];
|
||||||
TerminalElement element = (TerminalElement)iterator.next();
|
if (element.getName().equals(terminalTitle))
|
||||||
if (element.getName().equals(terminalTitle))
|
return element;
|
||||||
return element;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
public Object[] getChildren() {
|
public Object[] getChildren() {
|
||||||
if (children != null)
|
Object[] result;
|
||||||
return children.toArray();
|
synchronized (children) {
|
||||||
return null;
|
result = (Object[]) children
|
||||||
|
.toArray(new Object[children.size()]);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasChildren() {
|
public boolean hasChildren() {
|
||||||
if (children != null && children.size() > 0)
|
synchronized (children) {
|
||||||
return true;
|
if (children.size() > 0)
|
||||||
return false;
|
return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setTerminalService(ITerminalService service) {
|
public void setTerminalService(ITerminalService service) {
|
||||||
|
@ -151,21 +142,20 @@ public final class TerminalServiceSubSystem extends SubSystem implements
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
public void cancelAllTerminals() {
|
public void cancelAllTerminals() {
|
||||||
if (children == null || children.size() == 0)
|
if (children.size() == 0)
|
||||||
return;
|
return;
|
||||||
|
Object[] terminals = getChildren();
|
||||||
for (int i = children.size() - 1; i >= 0; i--) {
|
for (int i = terminals.length-1; i >= 0; i--) {
|
||||||
TerminalElement element = (TerminalElement) children.get(i);
|
TerminalElement element = (TerminalElement)terminals[i];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
removeTerminalElement(element);
|
removeTerminalElement(element);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
RSECorePlugin.getDefault().getLogger().logError("Error removing terminal", e); //$NON-NLS-1$
|
RSECorePlugin.getDefault().getLogger().logError("Error removing terminal", e); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
synchronized(children){
|
||||||
children.clear();
|
children.clear();
|
||||||
|
}
|
||||||
Display.getDefault().asyncExec(new Refresh(this));
|
Display.getDefault().asyncExec(new Refresh(this));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue