Example usage for java.awt.event FocusEvent getOppositeComponent

List of usage examples for java.awt.event FocusEvent getOppositeComponent

Introduction

In this page you can find the example usage for java.awt.event FocusEvent getOppositeComponent.

Prototype

public Component getOppositeComponent() 

Source Link

Document

Returns the other Component involved in this focus change.

Usage

From source file:com.aw.swing.mvp.cmp.pick.PickManager.java

/**
 * @param attrName La caja de texto txt<attrName> debe existir
 * @param pick//www. j ava  2s  .c  o  m
 * @return
 */
public Pick registerPick(String attrName, final Pick pick) {
    final String pickName = getPickName(attrName);
    getPicksInfo().add(new PickInfo(pick, attrName, pickName));
    picks.add(pick);
    if (pick instanceof PickImpl) {
        ((PickImpl) pick).setPresenter(presenter);
        pick.setMainAttribute(attrName);
        final JTextComponent jTextComponent = (JTextComponent) presenter.getIpView()
                .getComponent(getTxtPick(attrName));
        jTextComponent.addFocusListener(new FocusAdapter() {
            public void focusLost(FocusEvent e) {

                if (e.isTemporary()) {
                    return;
                }

                // if the pick action is currently executing
                Boolean executingPick = (Boolean) jTextComponent
                        .getClientProperty(BindingComponent.ATTR_EXECUTING_PICK_ACTION);
                if ((executingPick != null) && (executingPick)) {
                    jTextComponent.putClientProperty(BindingComponent.ATTR_EXECUTING_PICK_ACTION, null);
                    //                        return;
                }
                System.out.println("XXX    Focus LOST   2");
                // if the focus will be directed to the pick Button
                Component cmp = e.getOppositeComponent();
                if (cmp instanceof JComponent) {
                    JComponent jComponent = (JComponent) cmp;
                    String actionName = (String) jComponent.getClientProperty(BindingComponent.ATTR_ACTION);
                    if (pickName.equals(actionName)) {
                        return;
                    }
                }

                if (!pick.isPickFilled()) {

                    jTextComponent.setText("");
                }
            }
        });
        jTextComponent.addKeyListener(new PickKeyListener(pick));
        jTextComponent.putClientProperty(PICK_NAME, pickName);
        jTextComponent.putClientProperty(PICK, pick);
        //            JButton jButton = (JButton) presenter.getIpView().getComponent(getBtnPick(attrName));
    }
    return pick;
}

From source file:com.github.fritaly.dualcommander.DirectoryBrowser.java

@Override
public void focusGained(FocusEvent e) {
    if (e.getSource() == table) {
        // Propagate the event
        final FocusListener[] listeners = getListeners(FocusListener.class);

        if (listeners != null) {
            final FocusEvent event = new FocusEvent(this, e.getID(), e.isTemporary(), e.getOppositeComponent());

            for (FocusListener listener : listeners) {
                listener.focusGained(event);
            }/*  w  w w.  j a  va2 s  . c om*/
        }
    }
}

From source file:com.github.fritaly.dualcommander.DirectoryBrowser.java

@Override
public void focusLost(FocusEvent e) {
    if (e.getSource() == table) {
        // Propagate the event
        final FocusListener[] listeners = getListeners(FocusListener.class);

        if (listeners != null) {
            final FocusEvent event = new FocusEvent(this, e.getID(), e.isTemporary(), e.getOppositeComponent());

            for (FocusListener listener : listeners) {
                listener.focusLost(event);
            }/*from  w w w  .  java2s .  c om*/
        }
    }
}

From source file:org.nekorp.workflow.desktop.view.DatosAutoView.java

private void numeroSerieFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_numeroSerieFocusLost
    if (evt.getOppositeComponent() != this.search) {
        this.searchScroll.setVisible(false);
    }/*ww  w.  j  a  v  a 2  s .c o  m*/
}

From source file:edu.ku.brc.specify.tasks.subpane.qb.QueryFieldPanel.java

/**
 * @param iconSize/*from w w w .j a  va  2 s . com*/
 * @param returnWidths
 * @return
 */
protected int[] buildControlLayout(final IconManager.IconSize iconSize, final boolean returnWidths,
        final Component saveBtn) {
    FocusListener focusListener = new FocusListener() {

        /*
         * (non-Javadoc)
         * 
         * @see java.awt.event.FocusListener#focusGained(java.awt.event.FocusEvent)
         */
        // @Override
        public void focusGained(FocusEvent e) {
            //Checking oppositeComponent to work around
            //weird behavior after addBtn is clicked which
            //causes top queryFieldPanel to be selected.
            if (ownerQuery.getAddBtn() != null && e.getOppositeComponent() != ownerQuery.getAddBtn()) {
                ownerQuery.selectQFP(QueryFieldPanel.this);
            }

        }

        /*
         * (non-Javadoc)
         * 
         * @see java.awt.event.FocusListener#focusLost(java.awt.event.FocusEvent)
         */
        // @Override
        public void focusLost(FocusEvent e) {
            // nada
        }

    };

    KeyListener enterListener = new KeyListener() {

        @Override
        public void keyPressed(KeyEvent arg0) {
            //nuthin
        }

        @Override
        public void keyReleased(KeyEvent arg0) {
            //nuthin
        }

        @Override
        public void keyTyped(KeyEvent arg0) {
            if (arg0.getKeyChar() == KeyEvent.VK_ENTER && ownerQuery != null) {
                ownerQuery.doSearch();
            }

        }

    };

    comparators = getComparatorList(fieldQRI);
    //XXX need to build schemaItem for header panel too...
    if (schemaMapping != null) {
        schemaItemCBX = edu.ku.brc.ui.UIHelper.createComboBox();
        schemaItemCBX.addItem("empty"); //to work around validator blow up for empty lists.
        DataChangeNotifier dcnsi = validator.hookupComponent(schemaItemCBX, "sicbx", UIValidator.Type.Changed,
                "", true);
        schemaItemCBX.addActionListener(dcnsi);

        schemaItemCBX.addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent e) {
                if (!QueryFieldPanel.this.ownerQuery.isUpdatingAvailableConcepts()) {
                    if (e.getStateChange() == ItemEvent.SELECTED) {
                        if (e.getItem() instanceof SpExportSchemaItem) {
                            QueryFieldPanel.this.schemaItem = (SpExportSchemaItem) e.getItem();
                        } else {
                            SpExportSchemaItemMapping m = QueryFieldPanel.this.getItemMapping();
                            SpExportSchemaItem si = QueryFieldPanel.this.schemaItem;
                            String item = e.getItem().toString();
                            if (StringUtils.isNotBlank(item)
                                    && ownerQuery.isAvailableExportFieldName(QueryFieldPanel.this, item)) {
                                if (m != null) {
                                    m.setExportedFieldName(e.getItem().toString());
                                }
                                if (si != null) {
                                    si.setFieldName(e.getItem().toString());
                                }
                            } else {
                                if (StringUtils.isBlank(item)) {
                                    UIRegistry.displayErrorDlgLocalized(
                                            "QueryFieldPanel.ExportFieldNameInvalid", item);
                                } else {
                                    UIRegistry.displayErrorDlgLocalized(
                                            "QueryFieldPanel.ExportFieldNameAlreadyUsed", item);
                                }
                                schemaItemCBX.setSelectedIndex(0);
                            }
                        }
                        ownerQuery.updateAvailableConcepts();
                    }
                }
            }
        });
    } else {
        schemaItemCBX = null;
    }

    iconLabel = new JLabel(icon);
    iconLabel.addFocusListener(focusListener);
    String fieldLabelText = fieldQRI != null ? fieldQRI.getTitle() : "WXYZ";
    if (fieldQRI instanceof RelQRI) {
        DBRelationshipInfo.RelationshipType relType = ((RelQRI) fieldQRI).getRelationshipInfo().getType();
        if (relType.equals(DBRelationshipInfo.RelationshipType.OneToMany)
                || relType.equals(DBRelationshipInfo.RelationshipType.ManyToMany)) {
            fieldLabelText += " " + UIRegistry.getResourceString("QB_AGGREGATED");
        } else {
            fieldLabelText += " " + UIRegistry.getResourceString("QB_FORMATTED");
        }

    }
    fieldLabel = createLabel(fieldLabelText);
    fieldLabel.addFocusListener(focusListener);
    fieldLabel.addKeyListener(enterListener);
    isNotCheckbox = createCheckBox("isNotCheckbox");
    isNotCheckbox.addFocusListener(focusListener);
    isNotCheckbox.addKeyListener(enterListener);
    operatorCBX = createComboBox(comparators);
    operatorCBX.addFocusListener(focusListener);
    operatorCBX.addKeyListener(enterListener);
    boolean isBool = fieldQRI != null && fieldQRI.getDataClass().equals(Boolean.class);
    if (!isBool) {
        operatorCBX.addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent e) {
                if (e.getStateChange() == ItemEvent.SELECTED) {
                    criteria.setVisible(!operatorCBX.getSelectedItem().equals(SpQueryField.OperatorType.EMPTY));
                }
            }
        });
    }
    if (pickList == null) {
        boolean hasBetweenOp = false;
        for (int o = 0; o < comparators.length; o++) {
            if (comparators[o].equals(OperatorType.BETWEEN)) {
                hasBetweenOp = true;
                break;
            }
        }
        if (hasBetweenOp) {
            criteria = new CriteriaPair(enterListener);
            operatorCBX.addActionListener(this);
        } else {
            criteria = createTextField("1");
            criteria.addKeyListener(enterListener);
        }
    } else {
        criteria = createPickList(saveBtn);
        if (!ownerQuery.isPromptMode()) {
            ((PickListCriteriaCombo) criteria)
                    .setCurrentOp((SpQueryField.OperatorType) operatorCBX.getModel().getElementAt(0));
        }
        criteria.addKeyListener(enterListener);
        operatorCBX.addItemListener(new ItemListener() {

            /*
             * (non-Javadoc)
             * 
             * @see javax.swing.event.ListSelectionListener#valueChanged(javax.swing.event.ListSelectionEvent)
             */
            //@Override
            public void itemStateChanged(ItemEvent e) {
                if (e.getStateChange() == ItemEvent.SELECTED) {
                    // System.out.println("setting curront op");
                    ((PickListCriteriaCombo) criteria)
                            .setCurrentOp((SpQueryField.OperatorType) operatorCBX.getSelectedItem());
                }
            }

        });
    }
    //criteria.addFocusListener(focusListener);

    sortCheckbox = new MultiStateIconButon(
            new ImageIcon[] { IconManager.getImage("GrayDot", IconManager.IconSize.Std16),
                    IconManager.getImage("UpArrow", IconManager.IconSize.Std16),
                    IconManager.getImage("DownArrow", IconManager.IconSize.Std16) });
    DataChangeNotifier dcn = validator.hookupComponent(sortCheckbox, "scb", UIValidator.Type.Changed, "", true);
    sortCheckbox.addFocusListener(focusListener);
    sortCheckbox.addActionListener(dcn);
    sortCheckbox.addKeyListener(enterListener);
    if (!this.ownerQuery.isPromptMode()) {
        isEnforcedCkbx = createCheckBox("isEnforcedCkbx");
        dcn = validator.hookupComponent(isEnforcedCkbx, "iecb", UIValidator.Type.Changed, "", true);
        isEnforcedCkbx.addActionListener(dcn);
        isEnforcedCkbx.addFocusListener(focusListener);
        isEnforcedCkbx.addKeyListener(enterListener);
    }
    if (!this.ownerQuery.isPromptMode()) {
        isDisplayedCkbx = createCheckBox("isDisplayedCkbx");
        dcn = validator.hookupComponent(isDisplayedCkbx, "idcb", UIValidator.Type.Changed, "", true);
        isDisplayedCkbx.addFocusListener(focusListener);
        isDisplayedCkbx.addKeyListener(enterListener);
        isDisplayedCkbx.addActionListener(dcn);
        isDisplayedCkbx.addActionListener(new ActionListener() {

            /* (non-Javadoc)
             * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
             */
            @Override
            public void actionPerformed(ActionEvent arg0) {
                SwingUtilities.invokeLater(new Runnable() {

                    /* (non-Javadoc)
                     * @see java.lang.Runnable#run()
                     */
                    @Override
                    public void run() {
                        sortCheckbox.setEnabled(isDisplayedCkbx.isSelected());
                        ownerQuery.changeNotification(QueryFieldPanel.this);
                    }
                });
            }
        });
        isPromptCkbx = createCheckBox("isPromptCkbx");
        dcn = validator.hookupComponent(isPromptCkbx, "ipcb", UIValidator.Type.Changed, "", true);
        isPromptCkbx.addActionListener(dcn);
        isPromptCkbx.addFocusListener(focusListener);
        isPromptCkbx.addKeyListener(enterListener);
        closeBtn = edu.ku.brc.ui.UIHelper.createIconBtn("Close", "QB_REMOVE_FLD", new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                boolean clearIt = schemaItem != null;
                ownerQuery.removeQueryFieldItem((QueryFieldPanel) ((JComponent) ae.getSource()).getParent());
                if (clearIt) {
                    setField(null, null);
                }
            }
        });
        closeBtn.setEnabled(true);
        closeBtn.setFocusable(false);
        closeBtn.addMouseListener(new MouseAdapter() {

            @Override
            public void mouseEntered(MouseEvent e) {
                ((JButton) e.getSource()).setIcon(IconManager.getIcon("CloseHover"));
                super.mouseEntered(e);
            }

            @Override
            public void mouseExited(MouseEvent e) {
                ((JButton) e.getSource()).setIcon(IconManager.getIcon("Close"));
                super.mouseExited(e);
            }

        });
    } else {
        isDisplayedCkbx = null;
        this.isPromptCkbx = null;
        this.isEnforcedCkbx = null;
        this.closeBtn = null;
    }

    JComponent[] qComps = { iconLabel, fieldLabel, isNotCheckbox, operatorCBX, criteria, sortCheckbox,
            isDisplayedCkbx, isPromptCkbx, isEnforcedCkbx, closeBtn, null };
    JComponent[] sComps = { schemaItemCBX, iconLabel, fieldLabel, isNotCheckbox, operatorCBX, criteria,
            sortCheckbox, isDisplayedCkbx, isEnforcedCkbx, closeBtn, null };
    // 0 1 2 3 4 5 6 7 8 9
    if (schemaMapping == null) {
        comps = qComps;
    } else {
        comps = sComps;
    }

    StringBuilder sb = new StringBuilder();
    Integer[] qFixedCmps = { 300 };
    Integer[] sFixedCmps = { 268, 300 };
    Integer[] fixedCmps;
    if (schemaMapping != null) {
        fixedCmps = sFixedCmps;
    } else {
        fixedCmps = qFixedCmps;
    }
    if (columnDefStr == null) {
        for (int i = 0; i < comps.length; i++) {
            sb.append(i == 0 ? "" : ",");
            if (isCenteredComp(i))
                sb.append("c:");
            if (i >= fixedCmps.length) {
                sb.append("p");
            } else {
                sb.append(fixedCmps[i] + "px");
            }
            if (isGrowComp(i))
                sb.append(":g");
            sb.append(",4px");
        }
    } else {
        sb.append(columnDefStr);
    }

    PanelBuilder builder = new PanelBuilder(new FormLayout("3px, " + sb.toString() + ", 3px", "3px, p, 3px"),
            this);
    CellConstraints cc = new CellConstraints();

    int col = 1;
    for (JComponent comp : comps) {
        if (comp != null) {
            builder.add(comp, cc.xy(col + 1, 2));
        }
        col += 2;
    }

    if (fieldQRI != null) {
        icon = IconManager.getIcon(fieldQRI.getTableInfo().getName(), iconSize);
        setIcon(icon);
    }
    if (!ownerQuery.isPromptMode()) {
        isDisplayedCkbx.setSelected(true);
        isPromptCkbx.setSelected(!(fieldQRI instanceof RelQRI));
        isEnforcedCkbx.setSelected(false);
    }

    if (fieldQRI == null && !returnWidths) {
        for (int c = 1; c < comps.length; c++) {
            if (comps[c] != null) {
                comps[c].setVisible(false);
            }
        }
    } else {
        // for now
        boolean isRel = fieldQRI != null && fieldQRI instanceof RelQRI;
        boolean isTreeLevel = fieldQRI instanceof TreeLevelQRI;
        isNotCheckbox.setVisible(!isRel || pickList != null);
        operatorCBX.setVisible(!isRel || pickList != null);
        criteria.setVisible((!isRel && !isBool) || pickList != null);
        if (schemaMapping != null) {
            this.sortCheckbox.setVisible(!(isTreeLevel || isRel));
        } else {
            if (!isRel) {
                this.sortCheckbox.setVisible(true);
            } else {
                this.sortCheckbox.setVisible(
                        ((RelQRI) fieldQRI).getRelationshipInfo().getType() != RelationshipType.OneToMany);
            }
        }

        if (!ownerQuery.isPromptMode()) {
            isDisplayedCkbx.setVisible(!isRel);
            isPromptCkbx.setVisible(!isRel);
            isEnforcedCkbx.setVisible(!isRel);
        }
    }
    validate();
    doLayout();

    int[] widths = null;
    if (returnWidths) {
        widths = new int[comps.length];
        for (int i = 0; i < comps.length; i++) {
            widths[i] = comps[i] != null ? comps[i].getSize().width : 0;
        }
        if (this.schemaMapping == null) {
            widths[0] = iconSize.size();
            widths[1] = 200;
        } else {
            widths[1] = iconSize.size();
            widths[2] = 200;
        }
    }
    return widths;
}

From source file:org.nekorp.workflow.desktop.view.DatosClienteView.java

private void nombreClienteFocusLost(java.awt.event.FocusEvent evt) {//GEN-FIRST:event_nombreClienteFocusLost
    //TODO responder algunas preguntas primero
    //si habra clientes con los mismos nombres por ejemplo
    if (evt.getOppositeComponent() != this.search) {
        this.searchScroll.setVisible(false);
    }//ww  w.j  a va2 s  .com
    //        if(evt.getOppositeComponent() != this.search && evt.getOppositeComponent() == this.rfcCliente) {
    //            this.searchScroll.setVisible(false);
    //            if (!recienCargado) {
    //                recienCargado = true;
    //                Cliente cliente = this.aplication.loadByName(this.nombreCliente.getText());
    //                int n = javax.swing.JOptionPane.showConfirmDialog(
    //                    mainFrame,
    //                    "El cliente " + this.nombreCliente.getText() + " ya existe\n"
    //                    + "Desea cargar sus datos?",
    //                    "Cliente existente",
    //                    javax.swing.JOptionPane.YES_NO_CANCEL_OPTION);
    //                if (n == javax.swing.JOptionPane.YES_OPTION) {
    //                    updateIgnoreCount = 2;
    //                    this.aplication.loadCliente(cliente);
    //                }
    //                if (n == javax.swing.JOptionPane.CANCEL_OPTION || n == javax.swing.JOptionPane.CLOSED_OPTION) {
    //                    recienCargado = true;
    //                }
    //                this.actualizaListaSearch(new LinkedList<Cliente>());
    //            }
    //        }
}

From source file:tufts.vue.RichTextBox.java

/**
 * This is what triggers the final save of the new text value to the LWComponent,
 * and notify's the UndoManager that a user action was completed.
 *///from   w ww. j a v a2 s. c o m
public void focusLost(FocusEvent e) {

    final java.awt.Component opposite = e.getOppositeComponent();

    if (opposite != null) {
        if ((opposite.getName() != null && opposite.getName().equals(FontEditorPanel.SIZE_FIELD_NAME))
                || opposite.getClass() == ColorMenuButton.class)
            return;
        else if (opposite.getClass() == FontEditorPanel.class || DockWindow.isDockWindow(opposite) ||
        // todo: something more generic than this getName check: set a property on the JComponent tagging it as a tool/editor?
                opposite.getClass() == JComboBox.class || (opposite.getName() != null
                        && opposite.getName().equals(tufts.vue.gui.ColorMenuButton.COLOR_POPUP_NAME))
                ||
                //quaqua makes this a bit awkard, this is for quaqua's color chooser.
                (opposite.getName() != null && opposite.getName().equals("dialog0"))) {
            //Earlier i was just returning here, but this creates a problem
            //because the component has already lost the focus...and so it doesn't 
            //get another focusLost the next time....so re-request the focus if you've lost
            //it so that we get the event again when we really want to get rid of the focus
            //so we can properly remove the edit control.

            requestFocus();
            return;
        }

    } else if (opposite == null) {
        if (DEBUG.FOCUS)
            outc("Focus not lost because opposite component = null");
        requestFocus();
        return;
    }

    //System.out.println(e.getComponent().toString());
    //System.out.println(e.getOppositeComponent().toString());
    if (TestDebug || DEBUG.FOCUS)
        outc("focusLost to " + e.getOppositeComponent() + "   " + opposite.getName());
    if (TestHarness == false && getParent() != null) {
        getParent().remove(this);
        // VUE.getFormattingPanel().getTextPropsPane().getFontEditorPanel().updateFormatControlsTB(this);
    }
    if (keyWasPressed || !keyWasPressed) { // TODO: as per VueTextField, need to handle drag & drop detect
        // only do this if they typed something (so we don't wind up with "label"
        // for the label on an accidental edit activation)
        if (TestDebug || DEBUG.FOCUS)
            out("key was pressed; setting label to: [" + getText() + "]");
        String text = getText();
        if (revert) {
            text = mUnchangedText;
            revert = false;
            //   setText(text);
        }
        lwc.setLabel0(text, false);

        VUE.getUndoManager().mark();
    }
    ////        setSize(getPreferredSize());
    //  lwc.setSize(mBounds.width, mBounds.height);
    if (lwc.getParent() != null && lwc.getParent() instanceof LWNode)
        lwc.getParent().layout();
    lwc.notify(this, LWKey.Repaint);
}

From source file:tufts.vue.RichTextBox.java

public void focusGained(FocusEvent e) {
    if (TestDebug || DEBUG.FOCUS)
        outc("focusGained from " + e.getOppositeComponent());
}