/*******************************************************************************
* Copyright (c) 2007-2011, MEDEVIT, MEDELEXIS and Elexis
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* M. Descher - Initial implementation
*
*******************************************************************************/
package ch.elexis.agenda.ui;
import org.eclipse.jface.action.IMenuCreator;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import ch.elexis.actions.Activator;
import ch.elexis.agenda.Messages;
import ch.elexis.agenda.preferences.PreferenceConstants;
import ch.elexis.core.data.activator.CoreHub;
public class BereichMenuCreator implements IMenuCreator {
Menu mine;
Activator agenda = Activator.getDefault();
String[] sMandanten;
MenuItem[] menuItems;
@Override
public void dispose(){}
public BereichMenuCreator(){
sMandanten =
CoreHub.globalCfg.get(PreferenceConstants.AG_BEREICHE, Messages.TagesView_praxis)
.split(","); //$NON-NLS-1$
menuItems = new MenuItem[sMandanten.length];
}
@Override
public Menu getMenu(Control parent){
mine = new Menu(parent);
fillMenu();
return mine;
}
@Override
public Menu getMenu(Menu parent){
mine = new Menu(parent);
fillMenu();
return mine;
}
private void fillMenu(){
mine.addListener(SWT.Show, new Listener() {
@Override
public void handleEvent(Event event){
MenuItem[] menuItems = mine.getItems();
for (int i = 0; i < menuItems.length; i++) {
if (menuItems[i].getText().equalsIgnoreCase(agenda.getActResource())) {
menuItems[i].setSelection(true);
} else {
menuItems[i].setSelection(false);
}
}
}
});
for (String m : sMandanten) {
MenuItem it = new MenuItem(mine, SWT.RADIO);
it.setText(m);
if (agenda.getActResource().equalsIgnoreCase(m)) {
it.setSelection(true);
} else {
it.setSelection(false);
}
it.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e){
MenuItem mi = (MenuItem) e.getSource();
agenda.setActResource(mi.getText());
}
});
}
}
}