Package org.drools.guvnor.client.asseteditor.ruleflow

Source Code of org.drools.guvnor.client.asseteditor.ruleflow.SplitNode$ConnectionRef

/*
* Copyright 2005 JBoss Inc
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.drools.guvnor.client.asseteditor.ruleflow;

import java.util.Map;

import org.drools.guvnor.client.messages.Constants;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.BlurEvent;
import com.google.gwt.event.dom.client.BlurHandler;
import com.google.gwt.event.dom.client.FocusEvent;
import com.google.gwt.event.dom.client.FocusHandler;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.client.rpc.IsSerializable;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;

public class SplitNode extends RuleFlowBaseNode {

    SplitTransferNode.Type                type;

    public Map<ConnectionRef, Constraint> constraints;
    private Constants                     constants = ((Constants) GWT.create( Constants.class ));

    @Override
    public Corners getCorners() {
        return Corners.ROUND;
    }

    @Override
    public ImageResource getImagePath() {
        return null;
    }

    @Override
    public String getStyle() {
        return BLUE_RULE_FLOW_NODE_STYLE;
    }

    /**
     * Show parameters when clicked.
     */
    public void onClick(Widget arg0) {

        if ( parametersForm != null ) {

            parametersForm.clear();

            // Add Type:
            parametersForm.addAttribute( constants.Type2(),
                                         new Label( type.toString() ) );

            for ( final ConnectionRef connectionRef : constraints.keySet() ) {

                final Constraint constraint = constraints.get( connectionRef );

                final TextBox priorityTextBox = new TextBox();
                priorityTextBox.setWidth( "30px" );
                priorityTextBox.setText( constraint.getPriority() + "" );

                priorityTextBox.addFocusHandler( new FocusHandler() {
                    public void onFocus(FocusEvent event) {
                        priorityTextBox.selectAll();
                    }
                } );
                priorityTextBox.addBlurHandler( new BlurHandler() {
                    public void onBlur(BlurEvent event) {
                        final Constraint constraint = constraints.get( connectionRef );
                        constraint.setPriority( Integer.parseInt( priorityTextBox.getText() ) );
                        constraints.put( connectionRef,
                                         constraint );
                    }
                } );

                final TextBox constraintTextBox = new TextBox();
                constraintTextBox.setWidth( "300px" );
                constraintTextBox.setText( constraint.getConstraint() );

                constraintTextBox.addFocusHandler( new FocusHandler() {
                    public void onFocus(FocusEvent event) {
                        constraintTextBox.selectAll();
                    }
                } );
                constraintTextBox.addBlurHandler( new BlurHandler() {
                    public void onBlur(BlurEvent event) {
                        final Constraint constraint = constraints.get( connectionRef );
                        constraint.setConstraint( constraintTextBox.getText() );
                        constraints.put( connectionRef,
                                         constraint );
                    }
                } );

                Panel panel = new HorizontalPanel();
                panel.add( new Label( constants.Priority() ) );
                panel.add( priorityTextBox );
                panel.add( new Label( constants.ValueRuleFlow() ) );
                panel.add( constraintTextBox );

                parametersForm.addAttribute( constraint.getName(),
                                             panel );
            }
        }
    }

    public static class Constraint
        implements
        IsSerializable {

        private String constraint;
        private String dialect;
        private int    priority;
        private String name;
        private String type;

        public String getConstraint() {
            return this.constraint;
        }

        public String getDialect() {
            return this.dialect;
        }

        public String getName() {
            return this.name;
        }

        public int getPriority() {
            return this.priority;
        }

        public String getType() {
            return this.type;
        }

        public void setConstraint(String constraint) {
            this.constraint = constraint;
        }

        public void setDialect(String dialect) {
            this.dialect = dialect;
        }

        public void setName(String name) {
            this.name = name;
        }

        public void setPriority(int priority) {
            this.priority = priority;
        }

        public void setType(String type) {
            this.type = type;
        }

    }

    public static class ConnectionRef
        implements
        IsSerializable {

        private String toType;
        private long   nodeId;

        public void setToType(String toType) {
            this.toType = toType;
        }

        public void setNodeId(long nodeId) {
            this.nodeId = nodeId;
        }

        public String getToType() {
            return toType;
        }

        public long getNodeId() {
            return nodeId;
        }

        public boolean equals(Object o) {
            if ( o instanceof ConnectionRef ) {
                ConnectionRef c = (ConnectionRef) o;
                return toType.equals( c.toType ) && nodeId == c.nodeId;
            }
            return false;
        }

        public int hashCode() {
            return 7 * toType.hashCode() + (int) nodeId;
        }

    }
}
TOP

Related Classes of org.drools.guvnor.client.asseteditor.ruleflow.SplitNode$ConnectionRef

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.