Beispiel #1
0
        /**
         * ContactListener Override: Tutorial Handler - Availability.
         * <br /><br />
         * Maps an availability property ENUM code to a text string, and writes that string to
         * the console. If it's <em>not</em> an availability change, ignore it.
         * <br /><br />
         * The implementation here follows the C++ pattern - a switch statement with cases for each
         * defined code. For Java 5.0, the Enum class' <code>toString</code> method eliminates the
         * need for the entire switch statement. For example, you could code the printf as:
         * <pre>
         *     MySession.myConsole.printf("%s: Availability of %s is now %s%n",
         *                       mySession.myTutorialTag,
         *                       affectedContact.getDisplayName(),
         *                       availability.toString());
         * </pre>
         * Implementing this functionality as a switch statement, however,
         * enables you to perform additional processing for specific cases.
         *
         * @param affectedContact
         * 	The affected Contact.
         * @param prop
         * 	The Contact property that triggered this event.
         * @param value
         * 	Ignored.
         *
         * @since 1.0
         *
         * @see com.skype.api.ContactListener#onPropertyChange(com.skype.api.Contact, com.skype.api.Contact.Property, int, String)
         */
        public void onPropertyChange(com.skype.api.Contact affectedContact, com.skype.api.Contact.Property prop, int value, String svalue)
        {
            if (prop == Contact.Property.P_AVAILABILITY)
            {
                String statusAsText;
                Contact.Availability availability = affectedContact.getAvailability();

                if (availability == Contact.Availability.UNKNOWN)
                    statusAsText = "UNKNOWN";
                else if (availability == Contact.Availability.PENDINGAUTH)
                    statusAsText = "PENDINGAUTH";
                else if (availability == Contact.Availability.BLOCKED)
                    statusAsText = "BLOCKED";
                else if (availability == Contact.Availability.BLOCKED_SKYPEOUT)
                    statusAsText = "BLOCKED_SKYPEOUT";
                else if (availability == Contact.Availability.SKYPEOUT)
                    statusAsText = "SKYPEOUT";
                else if (availability == Contact.Availability.OFFLINE)
                    statusAsText = "OFFLINE";
                else if (availability == Contact.Availability.OFFLINE_BUT_VM_ABLE)
                    statusAsText = "OFFLINE_BUT_VM_ABLE";
                else if (availability == Contact.Availability.OFFLINE_BUT_CF_ABLE)
                    statusAsText = "OFFLINE_BUT_CF_ABLE";
                else if (availability == Contact.Availability.ONLINE)
                    statusAsText = "ONLINE";
                else if (availability == Contact.Availability.AWAY)
                    statusAsText = "AWAY";
                else if (availability == Contact.Availability.NOT_AVAILABLE)
                    statusAsText = "NOT_AVAILABLE";
                else if (availability == Contact.Availability.DO_NOT_DISTURB)
                    statusAsText = "DO_NOT_DISTURB";
                else if (availability == Contact.Availability.SKYPE_ME)
                    statusAsText = "SKYPE_ME";
                else if (availability == Contact.Availability.INVISIBLE)
                    statusAsText = "INVISIBLE";
                else if (availability == Contact.Availability.CONNECTING)
                    statusAsText = "CONNECTING";
                else if (availability == Contact.Availability.ONLINE_FROM_MOBILE)
                    statusAsText = "ONLINE_FROM_MOBILE";
                else if (availability == Contact.Availability.AWAY_FROM_MOBILE)
                    statusAsText = "AWAY_FROM_MOBILE";
                else if (availability == Contact.Availability.NOT_AVAILABLE_FROM_MOBILE)
                    statusAsText = "NOT_AVAILABLE_FROM_MOBILE";
                else if (availability == Contact.Availability.DO_NOT_DISTURB_FROM_MOBILE)
                    statusAsText = "DO_NOT_DISTURB_FROM_MOBILE";
                else if (availability == Contact.Availability.SKYPE_ME_FROM_MOBILE)
                    statusAsText = "SKYPE_ME_FROM_MOBILE";
                else
                    statusAsText = "UNKNOWN";

                MySession.myConsole.printf("%s: Availability of %s is now %s (%s)%n",
                        mySession.myTutorialTag,
                        affectedContact.getDisplayName(), statusAsText,
                        availability);
            }
        }
        private static void processFolder(com.pff.PSTFolder folder)
        {
            depth++;

            if (depth > 0)
            {
                Console.Out.WriteLine(folder.getDisplayName());
            }

            if (folder.hasSubfolders())
            {
                java.util.Vector folders = folder.getSubFolders();
                foreach (com.pff.PSTFolder childFolder in folders) {
                    processFolder(childFolder);
                }
            }

            if (folder.getContentCount() > 0)
            {
                com.pff.PSTMessage email = (com.pff.PSTMessage)folder.getNextChild();
                depth++;
                while (email != null)
                {
                    email = (com.pff.PSTMessage) folder.getNextChild();
                    scanEmail(email);

                }
                depth--;
            }

            depth--;
        }