diff options
author | Eike Stepper | 2010-05-17 09:13:04 +0000 |
---|---|---|
committer | Eike Stepper | 2010-05-17 09:13:04 +0000 |
commit | 53166b5089a0b57c17e16d53f033342b46b8a025 (patch) | |
tree | 828c576438abdcc2cfa7625e69aef097442e7497 /plugins | |
parent | 575437d2a174c81f43103814e231265ed9071dfa (diff) | |
download | cdo-53166b5089a0b57c17e16d53f033342b46b8a025.tar.gz cdo-53166b5089a0b57c17e16d53f033342b46b8a025.tar.xz cdo-53166b5089a0b57c17e16d53f033342b46b8a025.zip |
vserver
Diffstat (limited to 'plugins')
3 files changed, 98 insertions, 4 deletions
diff --git a/plugins/org.eclipse.emf.cdo.examples.server.rap/src/org/eclipse/emf/cdo/examples/server/rap/DemoEntryPoint.java b/plugins/org.eclipse.emf.cdo.examples.server.rap/src/org/eclipse/emf/cdo/examples/server/rap/DemoEntryPoint.java index 2290b8306e..3fb76d4ba8 100644 --- a/plugins/org.eclipse.emf.cdo.examples.server.rap/src/org/eclipse/emf/cdo/examples/server/rap/DemoEntryPoint.java +++ b/plugins/org.eclipse.emf.cdo.examples.server.rap/src/org/eclipse/emf/cdo/examples/server/rap/DemoEntryPoint.java @@ -11,6 +11,7 @@ package org.eclipse.emf.cdo.examples.server.rap; import org.eclipse.rwt.lifecycle.IEntryPoint; +import org.eclipse.rwt.lifecycle.UICallBack; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.application.WorkbenchAdvisor; @@ -22,6 +23,7 @@ public class DemoEntryPoint implements IEntryPoint { public int createUI() { + UICallBack.activate(getClass().getName()); WorkbenchAdvisor workbenchAdvisor = new DemoWorkbenchAdvisor(); Display display = PlatformUI.createDisplay(); diff --git a/plugins/org.eclipse.emf.cdo.examples.server.rap/src/org/eclipse/emf/cdo/examples/server/rap/DemoView.java b/plugins/org.eclipse.emf.cdo.examples.server.rap/src/org/eclipse/emf/cdo/examples/server/rap/DemoView.java index 422d78ea21..8824204f9f 100644 --- a/plugins/org.eclipse.emf.cdo.examples.server.rap/src/org/eclipse/emf/cdo/examples/server/rap/DemoView.java +++ b/plugins/org.eclipse.emf.cdo.examples.server.rap/src/org/eclipse/emf/cdo/examples/server/rap/DemoView.java @@ -14,8 +14,12 @@ import org.eclipse.emf.cdo.examples.server.DemoConfiguration; import org.eclipse.emf.cdo.examples.server.DemoConfiguration.Mode; import org.eclipse.emf.cdo.examples.server.DemoServer; +import org.eclipse.net4j.util.concurrent.ConcurrencyUtil; + import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Font; @@ -32,7 +36,7 @@ import org.eclipse.ui.part.ViewPart; /** * @author Eike Stepper */ -public class DemoView extends ViewPart +public class DemoView extends ViewPart implements Runnable { public static final String ID = "org.eclipse.emf.cdo.examples.server.rap.view"; @@ -52,6 +56,10 @@ public class DemoView extends ViewPart private DemoConfiguration config; + private boolean updatingConfig; + + private Thread timeouter = new Thread(this); + public DemoView() { } @@ -66,6 +74,7 @@ public class DemoView extends ViewPart @Override public void dispose() { + timeouter.interrupt(); bigFont.dispose(); wizban.dispose(); logoImage.dispose(); @@ -91,6 +100,8 @@ public class DemoView extends ViewPart Label logo = new Label(composite, SWT.NONE); logo.setImage(logoImage); logo.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false)); + + timeouter.start(); } private Control createPane(Composite parent) @@ -101,7 +112,7 @@ public class DemoView extends ViewPart GridLayout gridLayout = new GridLayout(2, false); gridLayout.horizontalSpacing = 10; gridLayout.marginWidth = 0; - gridLayout.marginTop = 84; + gridLayout.marginTop = 16; gridLayout.marginBottom = 0; pane.setLayout(gridLayout); } @@ -124,6 +135,18 @@ public class DemoView extends ViewPart nameText.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); nameText.setTextLimit(DemoConfiguration.NAME_LENGTH); nameText.setFont(bigFont); + nameText.addModifyListener(new ModifyListener() + { + public void modifyText(ModifyEvent event) + { + if (!updatingConfig) + { + String name = nameText.getText(); + config = DemoServer.INSTANCE.getConfig(name); + updateConfig(); + } + } + }); Button button = new Button(composite, SWT.PUSH); button.setText("New"); @@ -139,7 +162,7 @@ public class DemoView extends ViewPart { Mode mode = dialog.getMode(); config = DemoServer.INSTANCE.addConfig(mode); - nameText.setText(config.getName()); + updateConfig(); } } }); @@ -152,6 +175,7 @@ public class DemoView extends ViewPart serverText = new Text(pane, SWT.BORDER); serverText.setText("tcp://cdo.eclipse.org:" + DemoServer.PORT); + serverText.setVisible(false); serverText.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false)); serverText.setFont(bigFont); } @@ -184,4 +208,72 @@ public class DemoView extends ViewPart { nameText.setFocus(); } + + public void run() + { + long lastUpdate = System.currentTimeMillis(); + while (!timeouter.isInterrupted()) + { + long now = System.currentTimeMillis(); + if (now - lastUpdate >= 1000L) + { + timeoutLabel.getDisplay().asyncExec(new Runnable() + { + public void run() + { + updateTimeout(); + } + }); + + lastUpdate = now; + } + + ConcurrencyUtil.sleep(200L); + } + } + + private void updateConfig() + { + if (!updatingConfig) + { + try + { + updatingConfig = true; + if (config != null) + { + nameText.setText(config.getName()); + serverText.setVisible(true); + modeLabel.setText(config.getMode().toString()); + updateTimeout(); + } + else + { + serverText.setVisible(false); + modeLabel.setText(""); + timeoutLabel.setText(""); + } + } + finally + { + updatingConfig = false; + } + } + } + + private void updateTimeout() + { + if (timeoutLabel != null && config != null) + { + if (config.isActive()) + { + timeoutLabel.setText(config.formatTimeoutMinutes() + " Minutes"); + } + else + { + nameText.setText(""); + config = null; + updateConfig(); + } + } + } } diff --git a/plugins/org.eclipse.emf.cdo.examples.server/src/org/eclipse/emf/cdo/examples/server/DemoServer.java b/plugins/org.eclipse.emf.cdo.examples.server/src/org/eclipse/emf/cdo/examples/server/DemoServer.java index d3cee2c36d..a5dc50ef4b 100644 --- a/plugins/org.eclipse.emf.cdo.examples.server/src/org/eclipse/emf/cdo/examples/server/DemoServer.java +++ b/plugins/org.eclipse.emf.cdo.examples.server/src/org/eclipse/emf/cdo/examples/server/DemoServer.java @@ -34,7 +34,7 @@ public class DemoServer extends Lifecycle public static final int PORT = 3003; - public static final long MAX_IDLE_TIME = 10 * 60 * 1000; + public static final long MAX_IDLE_TIME = 1 * 60 * 1000; public static final DemoServer INSTANCE = new DemoServer(); |