Archives pour la catégorie ‘SWT’

SWT : gérer le menu application sous MacOS X

SWT ne gère pas directement le menu application sous Mac OS X. Par défaut, toute application a donc un menu ressemblant à ceci :

Il est donc nécessaire de coder la modification du menu pour y refléter le nom réel de l’application et également mapper les actions des éléments A propos, Préférences et Quitter.

Auparavant, l’emploi de CocoaUIEnhancer était obligatoire car aucune API SWT n’existait pour accéder à ce menu. Depuis la version 3.7, les choses ont changé et une API interne est disponible. Voici un exemple d’utilisation de celle-ci :

Menu systemMenu = shell.getDisplay().getSystemMenu();
if (systemMenu == null)
	return; // not MacOS X

for (MenuItem menuItem : systemMenu.getItems())
{
	switch (menuItem.getID())
	{
		case SWT.ID_ABOUT:
		{
			menuItem.setText("About " + Constants.APPLICATION_NAME); // application name
			menuItem.addListener(SWT.Selection, new Listener()
			{
				@Override
				public void handleEvent(Event event)
				{
					helpAbout();
				}
			});
			break;
		}

		case SWT.ID_PREFERENCES:
		{
			menuItem.addListener(SWT.Selection, new Listener()
			{
				@Override
				public void handleEvent(Event event)
				{
					filePreferences();
				}
			});

			break;
		}

		case SWT.ID_QUIT:
		{
			menuItem.addListener(SWT.Selection, new Listener()
			{
				@Override
				public void handleEvent(Event event)
				{
					if (!fileExit())
						event.doit = false; // ignore exit if false
				}
			});

			break;
		}

		default:
		{
			break;
		}
	}
}

SWT : générer le JAR de la javadoc

La documentation de la librairie SWT n’est pas disponible directement sous la forme d’un package. Il faut donc la générer depuis les sources.

Une fois le JAR des sources récupéré sur cette page, la génération s’effectue de cette façon :

# cd swt-4.2-cocoa-macosx-x86_64
# unzip src.zip -d src
# javadoc -source 1.4 -d docs -sourcepath src -link http://java.sun.com/javase/6/docs/api/ -link . -subpackages org.eclipse.swt
# cd docs
# jar cf swt-4.2-doc.jar *

Reste ensuite à copier et ajouter le JAR à votre projet.

Par exemple sous Eclipse, il faut éditer les propriétés du projet, rubrique Java Build Path / Libraries et paramétrer l’élément Javadoc Location du JAR source :

Une fois tout ceci en place, la complétion de code doit être opérationnelle.

SWT : scrolling automatique avec un composant StyledText

L’astuce consiste à effectuer une sélection vide (invisible) du dernier caractère en appelant la méthode setSelection :

StyledText styledOutput;

// ...

styledOutput.append("texte à ajouter");

styledOutput.setSelection(styledOutput.getCharCount());

A noter qu’avec setSelectionRange, seul le positionnement du curseur est effectué pas le scolling.

Haut de page