public Channel getChannel(String name) { synchronized (channels) { Channel channel = channels.get(name); if (channel == null) { boolean resize = false; channel = channels.remove(INITIAL); if (channel == null) { channel = new Channel(name); resize = true; } else { channel.setName(name); } channels.put(name, channel); channelArray = channels.values().toArray(new Channel[channels.size()]); if (resize) { getDisplay() .syncExec( new Runnable() { public void run() { controlResized(null); } }); } } return channel; } }