javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/linux/org/eclipse/swt/internal/qt/s60/S60CommandPresentationStrategy.java
changeset 78 71ad690e91f5
parent 72 1f0034e370aa
child 80 d6dafc5d983f
--- a/javauis/eswt_qt/org.eclipse.swt/Eclipse_SWT_PI/linux/org/eclipse/swt/internal/qt/s60/S60CommandPresentationStrategy.java	Fri Sep 17 16:44:34 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
-package org.eclipse.swt.internal.qt.s60;
-
-import org.eclipse.ercp.swt.mobile.Command;
-import org.eclipse.swt.internal.qt.CommandPresentationStrategy;
-import org.eclipse.swt.internal.qt.CommandUtils;
-import org.eclipse.swt.internal.qt.OS;
-import org.eclipse.swt.internal.qt.CommandArranger.CommandCollection;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Internal_PackageSupport;
-import org.eclipse.swt.widgets.Widget;
-
-public class S60CommandPresentationStrategy extends CommandPresentationStrategy {
-    private Command[] positiveKeyCommands;
-    private Command negativeKeyCommand;
-    private Command defaultCommand;
-
-    public S60CommandPresentationStrategy() {
-        super();
-    }
-
-    protected void dispose() {
-        positiveKeyCommands = null;
-        negativeKeyCommand = null;
-        defaultCommand =null;
-    }
-
-
-    protected void handleCommandListChange(Command added, Command removed,
-            CommandCollection commands) {
-        cleanNegativeCommand();
-        cleanPositiveCommands();
-        updateCommandPositions(commands.getCommands(null));
-        placeNegativeCommand();
-        placePositiveCommands();
-    }
-
-    protected void handleDefaultCommandChange(Command defaultCommand) {
-        this.defaultCommand = defaultCommand;
-        cleanPositiveCommands();
-        placePositiveCommands();
-    }
-
-
-    protected void handleFocusChange(Control focused,
-            CommandCollection oldCommands, CommandCollection commands) {
-
-        //Clean-up the existing commands
-        cleanPositiveCommands();
-        cleanNegativeCommand();
-        //determine where the commands go
-        if( commands != null && commands.getSize()>0 ){
-            Command[] add = commands.getCommands(null);
-            updateCommandPositions(add);
-        }
-        //Place them to their places
-        placePositiveCommands();
-        placeNegativeCommand();
-
-    }
-
-    private void updateCommandPositions(Command[] commands) {
-        positiveKeyCommands = new Command[commands.length];
-        int  positiveKeyIndex=0;
-        for (int i = 0; i < commands.length; i++) {
-            Command cmd = commands[i];
-            if ( cmd.isDefaultCommand()){
-                defaultCommand = cmd;
-                continue;
-            }
-            if( CommandUtils.isNegativeType(cmd.type) ){
-                if (negativeKeyCommand == null || negativeKeyCommand.isDisposed()){
-                    negativeKeyCommand = cmd;
-                }else
-                if( negativeKeyCommand.getPriority() <= cmd.getPriority() ){
-                    positiveKeyCommands[positiveKeyIndex] = negativeKeyCommand;
-                    positiveKeyIndex++;
-                    negativeKeyCommand = cmd;
-                }else{
-                    positiveKeyCommands[positiveKeyIndex] = cmd;
-                    positiveKeyIndex++;
-                }
-                continue;
-            }
-            positiveKeyCommands[positiveKeyIndex]=cmd;
-            positiveKeyIndex++;
-        }
-        if ((positiveKeyIndex) < positiveKeyCommands.length ){// needs to shrink
-            Command[] rightSized = new Command[positiveKeyIndex];
-            System.arraycopy(positiveKeyCommands, 0, rightSized, 0, rightSized.length);
-            positiveKeyCommands = rightSized;
-        }
-    }
-
-
-    private void cleanPositiveCommands() {
-        boolean useBar = false;
-        if ( (positiveKeyCommands != null && positiveKeyCommands.length >1) ||
-                (defaultCommand != null && positiveKeyCommands != null) ){
-            useBar = true;
-        }
-        if (defaultCommand != null && !defaultCommand.isDisposed()
-                && !defaultCommand.control.isDisposed()) {
-            if (useBar) {
-                OS.QWidget_removeAction(defaultCommand.control.getShell()
-                        .internal_getOwnMenuBar(), topHandle(defaultCommand));
-            }
-            else{
-                 OS.QWidget_removeAction(topHandle(defaultCommand.control), topHandle(defaultCommand));
-            }
-        }
-        if (positiveKeyCommands != null) {
-            for (int i = 0; i < positiveKeyCommands.length; i++) {
-                Command cmd = positiveKeyCommands[i];
-                if (cmd == null || cmd.isDisposed()  || cmd.control.isDisposed()){
-                	continue;
-                }
-                int handle = 0;
-                if (useBar) {
-                    handle = cmd.control.getShell().internal_getOwnMenuBar();
-                } else {
-                    handle = topHandle(positiveKeyCommands[0].control);
-                }
-                OS.QWidget_removeAction(handle, topHandle(cmd));
-
-            }
-        }
-    }
-
-   private void cleanNegativeCommand() {
-        if(negativeKeyCommand != null && !negativeKeyCommand.isDisposed() && !negativeKeyCommand.control.isDisposed() ){
-            OS.QWidget_removeAction(topHandle(negativeKeyCommand.control), topHandle(negativeKeyCommand));
-        }
-    }
-
-    private void placeNegativeCommand() {
-        if(negativeKeyCommand != null ){
-            OS.QWidget_addAction(Internal_PackageSupport.topHandle(negativeKeyCommand.control),
-                    topHandle(negativeKeyCommand));
-        }
-    }
-
-    private void placePositiveCommands() {
-        if (defaultCommand != null ) {
-            int defaultCmdHandle = topHandle(defaultCommand);
-            if (positiveKeyCommands != null) {
-                OS.QMenuBar_addAction(defaultCommand.control.getShell()
-                        .internal_getOwnMenuBar(), defaultCmdHandle);
-            } else {
-                OS.QWidget_addAction(Internal_PackageSupport
-                        .topHandle(defaultCommand.control), defaultCmdHandle);
-            }
-        }
-        if (positiveKeyCommands != null) {
-            if (positiveKeyCommands.length == 1 && defaultCommand == null) {
-                OS.QWidget_addAction(Internal_PackageSupport
-                        .topHandle(positiveKeyCommands[0].control),
-                        topHandle(positiveKeyCommands[0]));
-            } else {
-                CommandUtils.sort(positiveKeyCommands);
-                for (int i = 0; i < positiveKeyCommands.length; i++) {
-                    OS.QMenuBar_addAction(positiveKeyCommands[i].control
-                            .getShell().internal_getOwnMenuBar(),
-                            topHandle(positiveKeyCommands[i]));
-                }
-            }
-        }
-    }
-
-    protected void handleMenuBarChanged(int newMenuBar,
-            CommandCollection commands) {
-        placePositiveCommands();
-    }
-
-
-    private static final int topHandle(Widget w) {
-        return Internal_PackageSupport.topHandle(w);
-    }
-}