Exemple #1
0
        static public String getRelativePath(String path1, String path2)
        {
            if (!path1.startsWith(path2))
                return path1;

            return path1.substring(path2.length());
        }
 public override bool nodeExists(String name)
 {
     //throws BackingStoreException {
     if (null == name) {
     throw new java.lang.NullPointerException();
     }
     AbstractPreferences startNode = null;
     lock (lockJ) {
     if (isRemoved()) {
         if ("".equals(name)) { //$NON-NLS-1$
             return false;
         }
         // prefs.9=This node has been removed
             throw new java.lang.IllegalStateException("This node has been removed"); //$NON-NLS-1$
     }
     validateName(name);
     if ("".equals(name) || "/".equals(name)) { //$NON-NLS-1$ //$NON-NLS-2$
         return true;
     }
     if (name.startsWith("/")) { //$NON-NLS-1$
         startNode = root;
         name = name.substring(1);
     } else {
         startNode = this;
     }
     }
     try {
     Preferences result = startNode.nodeImpl(name, false);
     return null == result ? false : true;
     } catch (java.lang.IllegalArgumentException e) {
     return false;
     }
 }
 public override Preferences node(String name)
 {
     AbstractPreferences startNode = null;
     lock (lockJ) {
     checkState();
     validateName(name);
     if ("".equals(name)) { //$NON-NLS-1$
         return this;
     } else if ("/".equals(name)) { //$NON-NLS-1$
         return root;
     }
     if (name.startsWith("/")) { //$NON-NLS-1$
         startNode = root;
         name = name.substring(1);
     } else {
         startNode = this;
     }
     }
     try {
     return startNode.nodeImpl(name, true);
     } catch (BackingStoreException e) {
     // should not happen
     return null;
     }
 }
Exemple #4
0
        private void processToolBarCommand(object sender, EventArgs e,  String strAction)
        {

            boolean callback = false;
            if (strAction == "back")
            {
                if (m_strAppBackUrl.length() > 0)
                    processToolBarCommand(this, e, m_strAppBackUrl);
                else if (m_backHistory.Count > 0)
                {
                    Uri destination = m_backHistory.Peek();
                    m_webBrowser.Navigate(destination);
                }
                return;
            }

            if (strAction.startsWith("callback:"))
            {
                strAction = strAction.substring(9);
                callback = true;
            }

            if (strAction == "forward" && m_forwardHistory.Count > 0)
            {
                Uri destination = m_forwardHistory.Peek();
                m_webBrowser.Navigate(destination);
                return;
            }

            if (strAction == "home")
            {
                String strHomePage = RhoRuby.getStartPage();
                strHomePage = canonicalizeRhoUrl(strHomePage);
                m_webBrowser.Navigate(new Uri(strHomePage));
                return;
            }

            if (strAction == "log")
            {
                showLogScreen();
                return;
            }

            if (strAction == "options")
            {
                String curUrl = RhoRuby.getOptionsPage();
				curUrl = canonicalizeRhoUrl(curUrl);
			    m_webBrowser.Navigate(new Uri(curUrl));
                return;
            }

            if (strAction == "refresh" && m_currentUri != null)
            {
                m_webBrowser.Navigate(m_currentUri);
                return;
            }

            if (strAction == "sync")
            {
                SyncThread.doSyncAllSources(true);
                return;
            }

            strAction = canonicalizeRhoUrl(strAction);
            if (callback)
            {
                RhoClassFactory.createNetRequest().pushData(strAction, "rho_callback=1", null);
            }
            else
                m_webBrowser.Navigate(new Uri(strAction));
        }
Exemple #5
0
        public String resolveDBFilesPath(String strFilePath)
        {
            if (strFilePath.length() == 0 || strFilePath.startsWith(getRhoRootPath()))
                return strFilePath;

            return CFilePath.join(getRhoRootPath(), strFilePath);
        }
Exemple #6
0
 public boolean isRhodesAppUrl(String url)
 {
     return url.startsWith(getHomeUrl());
 }
Exemple #7
0
 boolean isExternalUrl(String strUrl)
 {
     return strUrl.startsWith("http://") || strUrl.startsWith("https://") ||
         strUrl.startsWith("javascript:") || strUrl.startsWith("mailto:")
          || strUrl.startsWith("tel:") || strUrl.startsWith("wtai:") ||
          strUrl.startsWith("sms:");
 }
Exemple #8
0
        /**
         * <p><code>QName</code> derived from parsing the formatted
         * <code>String</code>.</p>
         *
         * <p>If the <code>String</code> is <code>null</code> or does not conform to
         * {@link #toString() QName.toString()} formatting, an
         * <code>IllegalArgumentException</code> is thrown.</p>
         *
         * <p><em>The <code>String</code> <strong>MUST</strong> be in the
         * form returned by {@link #toString() QName.toString()}.</em></p>

         * <p>The commonly accepted way of representing a <code>QName</code>
         * as a <code>String</code> was <a href="http://jclark.com/xml/xmlns.htm">defined</a>
         * by James Clark.  Although this is not a <em>standard</em>
         * specification, it is in common use,  e.g. {@link javax.xml.transform.Transformer#setParameter(String name, Object value)}.
         * This implementation parses a <code>String</code> formatted
         * as: "{" + Namespace URI + "}" + local part.  If the Namespace
         * URI <code>.equals(XMLConstants.NULL_NS_URI)</code>, only the
         * local part should be provided.</p>
         *
         * <p>The prefix value <strong><em>CANNOT</em></strong> be
         * represented in the <code>String</code> and will be set to
         * {@link javax.xml.XMLConstants#DEFAULT_NS_PREFIX
         * XMLConstants.DEFAULT_NS_PREFIX}.</p>
         *
         * <p>This method does not do full validation of the resulting
         * <code>QName</code>.
         * <p>The Namespace URI is not validated as a
         * <a href="http://www.ietf.org/rfc/rfc2396.txt">URI reference</a>.
         * The local part is not validated as a
         * <a href="http://www.w3.org/TR/REC-xml-names/#NT-NCName">NCName</a>
         * as specified in
         * <a href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML</a>.</p>
         *
         * @param qNameAsString <code>String</code> representation
         * of the <code>QName</code>
         * @return <code>QName</code> corresponding to the given <code>String</code>
         * @see #toString() QName.toString()
         */
        public static QName valueOf(String qNameAsString)
        {
            // null is not valid
            if (qNameAsString == null)
            {
                throw new java.lang.IllegalArgumentException("cannot create QName from \"null\" or \"\" String");
            }

            // "" local part is valid to preserve compatible behavior with QName 1.0
            if (qNameAsString.length() == 0)
            {
                return new QName(
                    XMLConstants.NULL_NS_URI,
                    qNameAsString,
                    XMLConstants.DEFAULT_NS_PREFIX);
            }

            // local part only?
            if (qNameAsString.charAt(0) != '{')
            {
                return new QName(
                    XMLConstants.NULL_NS_URI,
                    qNameAsString,
                    XMLConstants.DEFAULT_NS_PREFIX);
            }

            // Namespace URI improperly specified?
            if (qNameAsString.startsWith("{" + XMLConstants.NULL_NS_URI + "}"))
            {
                throw new java.lang.IllegalArgumentException(
                    "Namespace URI .equals(XMLConstants.NULL_NS_URI), "
                    + ".equals(\"" + XMLConstants.NULL_NS_URI + "\"), "
                    + "only the local part, "
                    + "\"" + qNameAsString.substring(2 + XMLConstants.NULL_NS_URI.length()) + "\", "
                    + "should be provided.");
            }

            // Namespace URI and local part specified
            int endOfNamespaceURI = qNameAsString.indexOf('}');
            if (endOfNamespaceURI == -1)
            {
                throw new java.lang.IllegalArgumentException(
                    "cannot create QName from \""
                        + qNameAsString
                        + "\", missing closing \"}\"");
            }
            return new QName(
                qNameAsString.substring(1, endOfNamespaceURI),
                qNameAsString.substring(endOfNamespaceURI + 1),
                XMLConstants.DEFAULT_NS_PREFIX);
        }
Exemple #9
0
	    public NetResponse pullFile( String strUrl, String strFileName, IRhoSession oSession, Hashtable<String, String> headers )
	    {
		    NetResponse resp = null;
            m_isPullFile = true;

		    m_bCancel = false;
    	
		    try{

	            if (!strFileName.startsWith("file:")) { 
            	    try{
	            	    strFileName = CFilePath.join(CRhodesApp.getRhoRootPath(), strFileName);
            	    } catch (IOException e) { 
                 	    LOG.ERROR("getDirPath failed.", e);
                    }              	
	            }

                m_pulledFile = RhoClassFactory.createFile();
                m_pulledFile.open(strFileName, CRhoFile.EOpenModes.OpenForReadWrite);
                m_pulledFile.setPosTo(m_pulledFile.size());
			
			    do{
                    resp = doRequest("GET", strUrl, null, oSession, headers, m_pulledFile.size());
			    }while( !m_bCancel && (resp == null || resp.isOK()) && m_nCurDownloadSize > 0);
			
		    }finally{
                if (m_pulledFile != null)
			    {
                    try { m_pulledFile.close(); }
                    catch (IOException e)
                    {
                        LOG.ERROR("file closing failed.", e);
                    }
                    m_pulledFile = null;
			    }
		    }
		
		    copyHashtable(m_OutHeaders, headers);

            m_isPullFile = false;
            m_nCurDownloadSize = 0;
            return resp != null && !m_bCancel ? resp : makeResponse("", Convert.ToInt32(HttpStatusCode.InternalServerError));
	    }
Exemple #10
0
        /**
         * Parses the clear text URL in {@code str} into a URL object. URL strings
         * generally have the following format:
         * <p/>
         * http://www.company.com/java/file1.java#reference
         * <p/>
         * The string is parsed in HTTP format. If the protocol has a different URL
         * format this method must be overridden.
         *
         * @param u
         *            the URL to fill in the parsed clear text URL parts.
         * @param str
         *            the URL string that is to be parsed.
         * @param start
         *            the string position from where to begin parsing.
         * @param end
         *            the string position to stop parsing.
         * @see #toExternalForm
         * @see URL
         */
        protected internal void parseURL(URL u, String str, int start, int end)
        {
            if (end < start || end < 0) {
            // Checks to ensure string index exception ahead of
            // security exception for compatibility.
            if (end <= java.lang.Integer.MIN_VALUE + 1 && (start >= str.length() || start < 0)
                    || str.startsWith("//", start) && str.indexOf('/', start + 2) == -1) { //$NON-NLS-1$
                throw new java.lang.StringIndexOutOfBoundsException(end);
            }
            if (this != u.strmHandler) {
                throw new java.lang.SecurityException();
            }
            return;
            }
            String parseString = str.substring(start, end);
            end -= start;
            int fileIdx = 0;

            // Default is to use info from context
            String host = u.getHost();
            int port = u.getPort();
            String refJ = u.getRef();
            String file = u.getPath();
            String query = u.getQuery();
            String authority = u.getAuthority();
            String userInfo = u.getUserInfo();

            int refIdx = parseString.indexOf('#', 0);
            if (parseString.startsWith("//") && !parseString.startsWith("////")) { //$NON-NLS-1$
            int hostIdx = 2, portIdx = -1;
            port = -1;
            fileIdx = parseString.indexOf('/', hostIdx);
            int questionMarkIndex = parseString.indexOf('?', hostIdx);
            if ((questionMarkIndex != -1)
                    && ((fileIdx == -1) || (fileIdx > questionMarkIndex))) {
                fileIdx = questionMarkIndex;
            }
            if (fileIdx == -1) {
                fileIdx = end;
                // Use default
                file = ""; //$NON-NLS-1$
            }
            int hostEnd = fileIdx;
            if (refIdx != -1 && refIdx < fileIdx) {
                hostEnd = refIdx;
            }
            int userIdx = parseString.lastIndexOf('@', hostEnd);
            authority = parseString.substring(hostIdx, hostEnd);
            if (userIdx > -1) {
                userInfo = parseString.substring(hostIdx, userIdx);
                hostIdx = userIdx + 1;
            }

            portIdx = parseString.indexOf(':', userIdx == -1 ? hostIdx
                    : userIdx);
            int endOfIPv6Addr = parseString.indexOf(']');
            // if there are square braces, ie. IPv6 address, use last ':'
            if (endOfIPv6Addr != -1) {
                try {
                    if (parseString.length() > endOfIPv6Addr + 1) {
                        char c = parseString.charAt(endOfIPv6Addr + 1);
                        if (c == ':') {
                            portIdx = endOfIPv6Addr + 1;
                        } else {
                            portIdx = -1;
                        }
                    } else {
                        portIdx = -1;
                    }
                } catch (Exception e) {
                    // Ignored
                }
            }

            if (portIdx == -1 || portIdx > fileIdx) {
                host = parseString.substring(hostIdx, hostEnd);
            } else {
                host = parseString.substring(hostIdx, portIdx);
                String portString = parseString.substring(portIdx + 1, hostEnd);
                if (portString.length() == 0) {
                    port = -1;
                } else {
                    port = java.lang.Integer.parseInt(portString);
                }
            }
            }

            if (refIdx > -1) {
            refJ = parseString.substring(refIdx + 1, end);
            }
            int fileEnd = (refIdx == -1 ? end : refIdx);

            int queryIdx = parseString.lastIndexOf('?', fileEnd);
            bool canonicalize = false;
            if (queryIdx > -1) {
            query = parseString.substring(queryIdx + 1, fileEnd);
            if (queryIdx == 0 && file != null) {
                if (file.equals("")) { //$NON-NLS-1$
                    file = "/"; //$NON-NLS-1$
                } else if (file.startsWith("/")) { //$NON-NLS-1$
                    canonicalize = true;
                }
                int last = file.lastIndexOf('/') + 1;
                file = file.substring(0, last);
            }
            fileEnd = queryIdx;
            } else
            // Don't inherit query unless only the ref is changed
            if (refIdx != 0) {
            query = null;
            }

            if (fileIdx > -1) {
            if (fileIdx < end && parseString.charAt(fileIdx) == '/') {
                file = parseString.substring(fileIdx, fileEnd);
            } else if (fileEnd > fileIdx) {
                if (file == null) {
                    file = ""; //$NON-NLS-1$
                } else if (file.equals("")) { //$NON-NLS-1$
                    file = "/"; //$NON-NLS-1$
                } else if (file.startsWith("/")) { //$NON-NLS-1$
                    canonicalize = true;
                }
                int last = file.lastIndexOf('/') + 1;
                if (last == 0) {
                    file = parseString.substring(fileIdx, fileEnd);
                } else {
                    file = file.substring(0, last)
                            + parseString.substring(fileIdx, fileEnd);
                }
            }
            }
            if (file == null) {
            file = ""; //$NON-NLS-1$
            }

            if (host == null) {
            host = ""; //$NON-NLS-1$
            }

            if (canonicalize) {
            // modify file if there's any relative referencing
            file = URLUtil.canonicalizePath(file);
            }

            setURL(u, u.getProtocol(), host, port, authority, userInfo, file,
                query, refJ);
        }
Exemple #11
0
 public java.net.URL getResource(String name)
 {
     String root = "";
     if (name.startsWith("/"))
     {
         name = name.substring(1);
     }
     else
     {
         String package = this.getClass().getPackage().getName();
         root = package.replace('.', '/') + '/';
     }
     name = root + name;
     return getClassLoader().getResource(name);
 }