Hi Brian,

You will have to extend ULCSplitPane.

Please see the snippet below.

Thanks and regards,

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of McCarty, Brian
Sent: Thursday, January 18, 2007 10:19 PM
To: [email protected]
Subject: [ULC-developer] SplitPane event


Is there a way to detect when the divider on a split pane has been clicked.
I would like to perform an action after the divider bar is clicked but
before the divider is moved.  Sample code would be very helpful.

Thanks,
Brian McCarty

----------------------

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JSplitPane;
import javax.swing.plaf.basic.BasicSplitPaneDivider;
import javax.swing.plaf.basic.BasicSplitPaneUI;

import com.ulcjava.base.application.AbstractApplication;
import com.ulcjava.base.application.ULCBorderLayoutPane;
import com.ulcjava.base.application.ULCButton;
import com.ulcjava.base.application.ULCComponent;
import com.ulcjava.base.application.ULCFrame;
import com.ulcjava.base.application.ULCLabel;
import com.ulcjava.base.application.ULCSplitPane;
import com.ulcjava.base.application.event.ActionEvent;
import com.ulcjava.base.application.event.IActionListener;
import com.ulcjava.base.client.UISplitPane;
import com.ulcjava.base.development.DevelopmentRunner;
import com.ulcjava.base.shared.UlcEventCategories;

public class MousePressOnSplitPaneDividerSnippet extends AbstractApplication
{
    public void start() {
        ULCFrame frame = new ULCFrame();

        ULCMySplitPane splitPane = new
ULCMySplitPane(ULCSplitPane.HORIZONTAL_SPLIT, new ULCButton("Button"), new
ULCLabel("Label"));
        splitPane.addActionListener(new IActionListener() {
            public void actionPerformed(ActionEvent event) {
               if (event.getActionCommand().equals("MousePressed")) {
                   System.out.println("MousePressed on Divider");
               }
            }
        });
        frame.getContentPane().add(splitPane, ULCBorderLayoutPane.CENTER);
        frame.setDefaultCloseOperation(ULCFrame.TERMINATE_ON_CLOSE);
        frame.setSize(300,400);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        DevelopmentRunner.setApplicationClass(MousePressOnSplitPaneDividerSn
ippet.class);
        DevelopmentRunner.run();
    }


    public static class ULCMySplitPane extends ULCSplitPane {

        public ULCMySplitPane(int orientation, ULCComponent leftComponent,
ULCComponent rightComponent) {
            super(orientation, leftComponent, rightComponent);
        }

        protected String typeString() {
            return UIMySplitPane.class.getName();
        }

        public void addActionListener(IActionListener actionListener) {
            addListener(UlcEventCategories.ACTION_EVENT_CATEGORY,
actionListener);
        }

         public void removeActionListener(IActionListener actionListener) {
            removeListener(UlcEventCategories.ACTION_EVENT_CATEGORY,
actionListener);
        }

    }

    public static class UIMySplitPane extends UISplitPane {

        protected void postInitializeState() {
            super.postInitializeState();

            JSplitPane jSplitPane = getBasicSplitPane();
            BasicSplitPaneDivider divider =
((BasicSplitPaneUI)jSplitPane.getUI()).getDivider();
            divider.addMouseListener(new MouseListener() {

                public void mouseClicked(MouseEvent e) {
                }

                public void mouseEntered(MouseEvent e) {
                }

                public void mouseExited(MouseEvent e) {
                }

                public void mousePressed(MouseEvent e) {
                    fireActionPerformedULC("MousePressed",
e.getModifiers());
                }

                public void mouseReleased(MouseEvent e) {
                }

            });
        }

    }
}

_______________________________________________
ULC-developer mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/ulc-developer

Reply via email to