Example usage for org.apache.wicket.protocol.http ClientProperties getNavigatorPlatform

List of usage examples for org.apache.wicket.protocol.http ClientProperties getNavigatorPlatform

Introduction

In this page you can find the example usage for org.apache.wicket.protocol.http ClientProperties getNavigatorPlatform.

Prototype

public String getNavigatorPlatform() 

Source Link

Usage

From source file:com.servoy.j2db.server.headlessclient.dataui.WebEventExecutor.java

License:Open Source License

/**
 * @param component/*from w  w w.j  a  v a 2s .  c  o  m*/
 */
@SuppressWarnings("nls")
public static boolean setSelectedIndex(Component component, AjaxRequestTarget target, int modifiers,
        boolean bHandleMultiselect) {
    WebForm parentForm = component.findParent(WebForm.class);
    WebCellBasedView tableView = null;
    if (parentForm != null) {
        int parentFormViewType = parentForm.getController().getForm().getView();
        if (parentFormViewType == FormController.TABLE_VIEW
                || parentFormViewType == FormController.LOCKED_TABLE_VIEW
                || parentFormViewType == IForm.LIST_VIEW
                || parentFormViewType == FormController.LOCKED_LIST_VIEW) {
            tableView = component.findParent(WebCellBasedView.class);
            if (tableView == null) {
                // the component is not part of the table view (it is on other form part), so ignore selection change
                return true;
            } else
                tableView.setSelectionMadeByCellAction();

            if (parentFormViewType == IForm.LIST_VIEW
                    || parentFormViewType == FormController.LOCKED_LIST_VIEW) {
                if (component instanceof WebCellBasedViewListViewItem) {
                    ((WebCellBasedViewListViewItem) component).markSelected(target);
                } else {
                    WebCellBasedViewListViewItem listViewItem = component
                            .findParent(WebCellBasedView.WebCellBasedViewListViewItem.class);
                    if (listViewItem != null) {
                        listViewItem.markSelected(target);
                    }
                }
            }
        }
    }

    //search for recordItem model
    Component recordItemModelComponent = component;
    IModel<?> someModel = recordItemModelComponent.getDefaultModel();
    while (!(someModel instanceof RecordItemModel)) {
        recordItemModelComponent = recordItemModelComponent.getParent();
        if (recordItemModelComponent == null)
            break;
        someModel = recordItemModelComponent.getDefaultModel();
    }

    if (someModel instanceof RecordItemModel) {
        if (!(component instanceof WebCellBasedViewListViewItem)) {
            // update the last rendered value for the events component (if updated)
            ((RecordItemModel) someModel).updateRenderedValue(component);
        }

        IRecordInternal rec = (IRecordInternal) someModel.getObject();
        if (rec != null) {
            int index;
            IFoundSetInternal fs = rec.getParentFoundSet();
            if (someModel instanceof FoundsetRecordItemModel) {
                index = ((FoundsetRecordItemModel) someModel).getRowIndex();
            } else {
                index = fs.getRecordIndex(rec); // this is used only on "else", because a "plugins.rawSQL.flushAllClientsCache" could result in index = -1 although the record has not changed (but record & underlying row instances changed)
            }

            if (fs instanceof FoundSet && ((FoundSet) fs).isMultiSelect()) {
                //set the selected record
                ClientProperties clp = ((WebClientInfo) Session.get().getClientInfo()).getProperties();
                String navPlatform = clp.getNavigatorPlatform();
                int controlMask = (navPlatform != null && navPlatform.toLowerCase().indexOf("mac") != -1)
                        ? Event.META_MASK
                        : Event.CTRL_MASK;

                boolean toggle = (modifiers != MODIFIERS_UNSPECIFIED) && ((modifiers & controlMask) != 0);
                boolean extend = (modifiers != MODIFIERS_UNSPECIFIED) && ((modifiers & Event.SHIFT_MASK) != 0);
                boolean isRightClick = (modifiers != MODIFIERS_UNSPECIFIED)
                        && ((modifiers & Event.ALT_MASK) != 0);

                if (!isRightClick) {
                    if (!toggle && !extend && tableView != null && tableView.getDragNDropController() != null
                            && Arrays.binarySearch(((FoundSet) fs).getSelectedIndexes(), index) > -1) {
                        return true;
                    }

                    if (toggle || extend) {
                        if (bHandleMultiselect) {
                            if (toggle) {
                                int[] selectedIndexes = ((FoundSet) fs).getSelectedIndexes();
                                ArrayList<Integer> selectedIndexesA = new ArrayList<Integer>();
                                Integer selectedIndex = new Integer(index);

                                for (int selected : selectedIndexes)
                                    selectedIndexesA.add(new Integer(selected));
                                if (selectedIndexesA.indexOf(selectedIndex) != -1) {
                                    if (selectedIndexesA.size() > 1)
                                        selectedIndexesA.remove(selectedIndex);
                                } else
                                    selectedIndexesA.add(selectedIndex);
                                selectedIndexes = new int[selectedIndexesA.size()];
                                for (int i = 0; i < selectedIndexesA.size(); i++)
                                    selectedIndexes[i] = selectedIndexesA.get(i).intValue();
                                ((FoundSet) fs).setSelectedIndexes(selectedIndexes);
                            } else if (extend) {
                                int anchor = ((FoundSet) fs).getSelectedIndex();
                                int min = Math.min(anchor, index);
                                int max = Math.max(anchor, index);

                                int[] newSelectedIndexes = new int[max - min + 1];
                                for (int i = min; i <= max; i++)
                                    newSelectedIndexes[i - min] = i;
                                ((FoundSet) fs).setSelectedIndexes(newSelectedIndexes);
                            }
                        }
                    } else if (index != -1 || fs.getSize() == 0) {
                        fs.setSelectedIndex(index);
                    }
                }
            } else if (!isIndexSelected(fs, index))
                fs.setSelectedIndex(index);
            if (!isIndexSelected(fs, index) && !(fs instanceof FoundSet && ((FoundSet) fs).isMultiSelect())) {
                // setSelectedIndex failed, probably due to validation failed, do a blur()
                if (target != null)
                    target.appendJavascript("var toBlur = document.getElementById(\"" + component.getMarkupId()
                            + "\");if (toBlur) toBlur.blur();");
                return false;
            }
        }
    }
    return true;
}

From source file:com.servoy.j2db.server.headlessclient.WebClient.java

License:Open Source License

@Override
public int getClientPlatform() {
    if (Session.exists()) {
        Session webClientSession = Session.get();
        if (webClientSession != null) {
            try {
                WebClientInfo clientInfo = (WebClientInfo) webClientSession.getClientInfo();
                if (clientInfo != null) {
                    ClientProperties properties = clientInfo.getProperties();
                    if (properties != null) {
                        return Utils.getPlatform(properties.getNavigatorPlatform());
                    }/*from  w ww  .j a v  a  2s. c o  m*/
                }
            } catch (Exception e) {
                Debug.trace(
                        "trying to get the client platform of a session, when destroying the client in a none request thread",
                        e);
            }
        }
    }
    return super.getClientPlatform();
}

From source file:eu.uqasar.model.monitoring.WebEnvironment.java

License:Apache License

private void populateFromClientProperties(ClientProperties props) {
    setBrowser(Browser.getFromClientProperties(props));
    setBrowserVersionMajor(props.getBrowserVersionMajor());
    setBrowserVersionMinor(props.getBrowserVersionMinor());
    setColorDepth(props.getScreenColorDepth());
    setCookiesEnabled(props.isCookiesEnabled());
    setHostname(props.getHostname());/*from  w w w. j av a  2  s  .  com*/
    setJavaEnabled(props.isJavaEnabled());
    setNavigatorLanguage(props.getNavigatorLanguage());
    setNavigatorPlatform(props.getNavigatorPlatform());
    setNavigatorUserAgent(props.getNavigatorUserAgent());
    setRemoteAddress(props.getRemoteAddress());
    setScreenHeight(props.getScreenHeight());
    setScreenWidth(props.getScreenWidth());
}

From source file:org.cast.cwm.service.EventService.java

License:Open Source License

@Override
public LoginSession createLoginSession(Request r) {
    LoginSession loginSession = newLoginSession();
    CwmSession cwmSession = CwmSession.get();
    loginSession.setSessionId(cwmSession.getId());
    loginSession.setStartTime(new Date());
    loginSession.setUser(cwmSession.getUser());
    if (r instanceof ServletWebRequest)
        loginSession.setIpAddress(((ServletWebRequest) r).getContainerRequest().getRemoteAddr());

    loginSession.setCookiesEnabled(false);
    if (cwmSession.getClientInfo() != null) {
        ClientProperties info = cwmSession.getClientInfo().getProperties();
        loginSession.setScreenHeight(info.getBrowserHeight());
        loginSession.setScreenWidth(info.getBrowserWidth());
        if (info.getTimeZone() != null)
            loginSession.setTimezoneOffset(info.getTimeZone().getOffset(new Date().getTime()));
        loginSession.setCookiesEnabled(info.isCookiesEnabled());
        loginSession.setPlatform(info.getNavigatorPlatform());
        loginSession.setUserAgent(cwmSession.getClientInfo().getUserAgent());
        // TODO/*  www. ja  v a 2s . c  om*/
        //loginSession.setflashVersion(flashVersion)
        // isJavaEnabled
    }
    Databinder.getHibernateSession().save(loginSession);

    cwmService.flushChanges();

    // register loginSession with Wicket session
    CwmSession.get().setLoginSessionModel(new HibernateObjectModel<LoginSession>(loginSession));

    return loginSession;
}