Skip to content

Commit

Permalink
RAP/RCP single sourcing
Browse files Browse the repository at this point in the history
  • Loading branch information
amergey committed Apr 17, 2012
1 parent 6fa5db7 commit a944f22
Show file tree
Hide file tree
Showing 37 changed files with 1,123 additions and 229 deletions.
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>org.eclipse.nebula.widget.datechooser.rap</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
@@ -0,0 +1,7 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6
@@ -0,0 +1,8 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: DateChooser RAP fragment
Bundle-SymbolicName: org.eclipse.nebula.widget.datechooser.rap
Bundle-Version: 1.0.0.qualifier
Fragment-Host: org.eclipse.nebula.widgets.datechooser;bundle-version="1.0.0"
Bundle-RequiredExecutionEnvironment: J2SE-1.4
Bundle-Vendor: Eclipse.org
@@ -0,0 +1,4 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.
@@ -0,0 +1,71 @@
package org.eclipse.nebula.widgets.datechooser.internal;

import java.util.Locale;

import org.eclipse.rwt.RWT;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.events.VerifyEvent;
import org.eclipse.swt.events.VerifyListener;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.Widget;

public class CompatibilityImpl implements Compatibility {

@Override
public void copy(Text text) {
// TODO Auto-generated method stub
}

@Override
public void cut(Text text) {
// TODO Auto-generated method stub

}

@Override
public void paste(Text text) {
// TODO Auto-generated method stub

}

@Override
public void removeModifyListener(Widget widget, ModifyListener listener) {
ModifyEvent.removeListener(widget, listener);
}

@Override
public void removeSelectionListener(Widget widget,
SelectionListener listener) {
SelectionEvent.removeListener(widget, listener);
}

@Override
public void removeVerifyListener(Widget widget, VerifyListener listener) {
VerifyEvent.removeListener(widget, listener);
}

@Override
public Locale getLocale() {
return RWT.getLocale();
}

@Override
public boolean traverse(Control control, int traversal) {
// TODO Auto-generated method stub
return false;
}

@Override
public Button createArrowButton(Composite composite, boolean left, int style) {
Button button = new Button(composite,SWT.PUSH | style);
button.setText(left ? "<" : ">");
return button;
}
}
@@ -0,0 +1,23 @@
/**
*
*/
package org.eclipse.nebula.widgets.datechooser.internal;

import java.util.Locale;

import org.eclipse.nebula.widgets.datechooser.DateChooser;
import org.eclipse.rwt.RWT;

/**
* RAP implementation
* @author amergey
*
*/
public class DateChooserComponentImpl extends DateChooserComponent {

@Override
public NLSMessages getNLS(Locale locale) {
return (NLSMessages) RWT.NLS.getISO8859_1Encoded( DateChooser.BUNDLE_NAME, NLSMessages.class );
}

}
@@ -0,0 +1,24 @@
/**
*
*/
package org.eclipse.nebula.widgets.datechooser.internal;

import org.eclipse.rwt.SessionSingletonBase;


/**
* RAP implementation for <code>SingletonProvider</code> facade
* @author amergey
*
*/
public class SingletonProviderImpl implements SingletonProvider {

/**
* @see org.eclipse.nebula.widgets.datechooser.internal.SingletonProvider#getThemeProviderInstance()
*/
@Override
public DateChooserThemeProvider getThemeProviderInstance() {
return SessionSingletonBase.getInstance(DateChooserThemeProvider.class);
}

}
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.4"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>org.eclipse.nebula.widget.datechooser.rcp</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
@@ -0,0 +1,7 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.2
org.eclipse.jdt.core.compiler.compliance=1.4
org.eclipse.jdt.core.compiler.problem.assertIdentifier=warning
org.eclipse.jdt.core.compiler.problem.enumIdentifier=warning
org.eclipse.jdt.core.compiler.source=1.3
@@ -0,0 +1,8 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: DateChooser RCP fragment
Bundle-SymbolicName: org.eclipse.nebula.widget.datechooser.rcp
Bundle-Version: 1.0.0.qualifier
Fragment-Host: org.eclipse.nebula.widgets.datechooser;bundle-version="1.0.0"
Bundle-RequiredExecutionEnvironment: J2SE-1.4
Bundle-Vendor: Eclipse.org
@@ -0,0 +1,4 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.
@@ -0,0 +1,71 @@
package org.eclipse.nebula.widgets.datechooser.internal;

import java.util.Locale;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.events.VerifyListener;
import org.eclipse.swt.internal.SWTEventListener;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.TypedListener;
import org.eclipse.swt.widgets.Widget;

public class CompatibilityImpl implements Compatibility {

public void copy(Text text) {
text.copy();
}

public void cut(Text text) {
text.cut();
}

public void paste(Text text) {
text.paste();
}

public void removeModifyListener(Widget widget, ModifyListener listener) {
removeListener(widget, SWT.Modify, listener);
}

public void removeListener(Widget widget, int type,SWTEventListener swtListen){
Listener[] listeners = widget.getListeners(type);
for (int i = 0; i < listeners.length; i++) {
if(listeners[i] instanceof TypedListener){
TypedListener typedListener = (TypedListener) listeners [i];
if(typedListener.getEventListener().equals(swtListen)){
widget.removeListener(type, typedListener);
return;
}
}
}
}

public void removeSelectionListener(Widget widget,
SelectionListener listener) {
removeListener(widget,SWT.Selection, listener);
removeListener(widget,SWT.DefaultSelection,listener);
}

public void removeVerifyListener(Widget widget, VerifyListener listener) {
removeListener(widget,SWT.Verify, listener);
}

public Locale getLocale() {
return Locale.getDefault();
}

public boolean traverse(Control control, int traversal) {
return control.traverse(traversal);
}

public Button createArrowButton(Composite composite, boolean left, int style) {
return new Button(composite,SWT.ARROW | (left ? SWT.LEFT : SWT.RIGHT) | style);
}
}
@@ -0,0 +1,68 @@
/**
*
*/
package org.eclipse.nebula.widgets.datechooser.internal;

import java.util.Locale;
import java.util.ResourceBundle;

import org.eclipse.nebula.widgets.datechooser.DateChooser;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;

/**
* RCP implementation
* @author amergey
*
*/
public class DateChooserComponentImpl extends DateChooserComponent {
ResourceBundle resources;

public int getComboSupportedStyle() {
return super.getComboSupportedStyle() | SWT.RIGHT_TO_LEFT;
}

public void comboTextTraverseEvent(Composite composite, Event event) {
switch ( event.detail ) {
case SWT.TRAVERSE_ARROW_PREVIOUS:
case SWT.TRAVERSE_ARROW_NEXT:
// The enter causes default selection and
// the arrow keys are used to manipulate the list contents so
// do not use them for traversal.
event.doit = false;
break;
case SWT.TRAVERSE_TAB_PREVIOUS:
event.doit = composite.traverse(SWT.TRAVERSE_TAB_PREVIOUS);
event.detail = SWT.TRAVERSE_NONE;
return;
}
super.comboTextTraverseEvent(composite, event);
}

public void chooserTraverseEvent(Event event) {
switch (event.detail) {
case SWT.TRAVERSE_ARROW_NEXT :
case SWT.TRAVERSE_ARROW_PREVIOUS :
case SWT.TRAVERSE_PAGE_NEXT :
case SWT.TRAVERSE_PAGE_PREVIOUS :
event.doit = false;
break;
default :
event.doit = true;
}
}

public NLSMessages getNLS(Locale locale) {
if(resources == null) {
resources = ResourceBundle.getBundle(DateChooser.BUNDLE_NAME, locale);
}
NLSMessages messages = new NLSMessages();
messages.DateChooser_nextButton = resources.getString("DateChooser_nextButton");
messages.DateChooser_previousButton = resources.getString("DateChooser_previousButton");
messages.DateChooser_today = resources.getString("DateChooser_today");
messages.minimalDaysInFirstWeek = resources.getString("minimalDaysInFirstWeek");

return messages;
}
}

0 comments on commit a944f22

Please sign in to comment.