Example usage for org.springframework.social.facebook.api Facebook mediaOperations

List of usage examples for org.springframework.social.facebook.api Facebook mediaOperations

Introduction

In this page you can find the example usage for org.springframework.social.facebook.api Facebook mediaOperations.

Prototype

MediaOperations mediaOperations();

Source Link

Document

API for performing operations on albums, photos, and videos.

Usage

From source file:architecture.ee.web.community.spring.controller.FacebookController.java

@RequestMapping(value = "/photo/{photoId}", method = RequestMethod.GET)
@ResponseBody/*from  w  ww  .  j a  v a 2  s . c o  m*/
public Object getPhoto(@PathVariable("photoId") String photoId) throws Exception {
    SocialConnect account = getSocialConnect(SecurityHelper.getUser(), Media.FACEBOOK);
    Facebook api = (Facebook) account.getConnection().getApi();
    Photo photo = api.mediaOperations().getPhoto(photoId);
    return photo;
}

From source file:com.ssn.event.controller.SSNShareController.java

@Override
public void mouseClicked(MouseEvent e) {
    Object mouseEventObj = e.getSource();
    if (mouseEventObj != null && mouseEventObj instanceof JLabel) {
        JLabel label = (JLabel) mouseEventObj;
        getShareForm().setCursor(new Cursor(Cursor.WAIT_CURSOR));
        // Tracking this sharing event in Google Analytics
        GoogleAnalyticsUtil.track(SSNConstants.SSN_APP_EVENT_SHARING);
        Thread thread = null;/*from w  ww. j  a  va2 s.co m*/
        switch (label.getName()) {
        case "FacebookSharing":
            thread = new Thread() {
                boolean isAlreadyLoggedIn = false;

                @Override
                public void run() {

                    Set<String> sharedFileList = getFiles();
                    AccessGrant facebookAccessGrant = getHomeModel().getHomeForm().getFacebookAccessGrant();
                    if (facebookAccessGrant == null) {
                        try {
                            LoginWithFacebook loginWithFacebook = new LoginWithFacebook(null);
                            loginWithFacebook.setHomeForm(getHomeModel().getHomeForm());
                            loginWithFacebook.login();

                            boolean processFurther = false;
                            while (!processFurther) {
                                facebookAccessGrant = getHomeModel().getHomeForm().getFacebookAccessGrant();
                                if (facebookAccessGrant == null) {
                                    Thread.sleep(10000);
                                } else {
                                    processFurther = true;
                                    isAlreadyLoggedIn = true;
                                }
                            }
                        } catch (InterruptedException ex) {
                            logger.error(ex);
                        }
                    }

                    FacebookConnectionFactory connectionFactory = new FacebookConnectionFactory(
                            SSNConstants.SSN_FACEBOOK_API_KEY, SSNConstants.SSN_FACEBOOK_SECRET_KEY);
                    Connection<Facebook> connection = connectionFactory.createConnection(facebookAccessGrant);
                    Facebook facebook = connection.getApi();
                    MediaOperations mediaOperations = facebook.mediaOperations();

                    if (!isAlreadyLoggedIn) {
                        // SSNMessageDialogBox messageDialogBox = new SSNMessageDialogBox();
                        SSNConfirmationDialogBox confirmeDialog = new SSNConfirmationDialogBox();
                        FacebookProfile userProfile = facebook.userOperations().getUserProfile();
                        String userName = "";
                        if (userProfile != null) {
                            userName = userProfile.getName() != null ? userProfile.getName()
                                    : userProfile.getFirstName();
                        }
                        confirmeDialog.initDialogBoxUI(SSNDialogChoice.NOTIFICATION_DIALOG.getType(),
                                "Confirmation", "",
                                "You are already logged in with " + userName + ", Click OK to continue.");
                        int result = confirmeDialog.getResult();
                        if (result == JOptionPane.YES_OPTION) {
                            SwingUtilities.invokeLater(new Runnable() {
                                public void run() {
                                    SSNMessageDialogBox messageDialogBox = new SSNMessageDialogBox();
                                    messageDialogBox.initDialogBoxUI(
                                            SSNDialogChoice.NOTIFICATION_DIALOG.getType(), "Message", "",
                                            "Successfully uploaded.");
                                    messageDialogBox.setFocusable(true);

                                }
                            });
                        } else if (result == JOptionPane.NO_OPTION) {

                            AccessGrant facebookAccessGrant1 = null;
                            if (facebookAccessGrant1 == null) {
                                try {
                                    LoginWithFacebook loginWithFacebook = new LoginWithFacebook(null);
                                    loginWithFacebook.setHomeForm(getHomeModel().getHomeForm());
                                    loginWithFacebook.login();

                                    boolean processFurther = false;
                                    while (!processFurther) {
                                        facebookAccessGrant1 = getHomeModel().getHomeForm()
                                                .getFacebookAccessGrant();
                                        if (facebookAccessGrant1 == null) {
                                            Thread.sleep(10000);
                                        } else {
                                            processFurther = true;
                                            //isAlreadyLoggedIn = true;
                                        }
                                    }
                                    connectionFactory = new FacebookConnectionFactory(
                                            SSNConstants.SSN_FACEBOOK_API_KEY,
                                            SSNConstants.SSN_FACEBOOK_SECRET_KEY);
                                    connection = connectionFactory.createConnection(facebookAccessGrant);
                                    facebook = connection.getApi();
                                    mediaOperations = facebook.mediaOperations();
                                } catch (InterruptedException ex) {
                                    logger.error(ex);
                                }
                            }
                        }
                    }

                    String[] videoSupported = SSNConstants.SSN_VIDEO_FORMAT_SUPPORTED;
                    final List<String> videoSupportedList = Arrays.asList(videoSupported);

                    for (String file : sharedFileList) {
                        String fileExtension = file.substring(file.lastIndexOf(".") + 1, file.length());
                        Resource resource = new FileSystemResource(file);

                        if (!videoSupportedList.contains(fileExtension.toUpperCase())) {
                            String output = mediaOperations.postPhoto(resource);
                        } else {
                            String output = mediaOperations.postVideo(resource);
                        }

                    }

                    getShareForm().dispose();
                }
            };
            thread.start();
            break;
        case "TwitterSharing":
            LoginWithTwitter.deniedPermission = false;
            thread = new Thread() {
                boolean isAlreadyLoggedIn = false;

                @Override
                public void run() {
                    Set<String> sharedFileList = getFiles();
                    OAuthToken twitterOAuthToken = getHomeModel().getHomeForm().getTwitterOAuthToken();
                    if (twitterOAuthToken == null) {
                        try {
                            LoginWithTwitter loginWithTwitter = new LoginWithTwitter(null);
                            loginWithTwitter.setHomeForm(getHomeModel().getHomeForm());
                            loginWithTwitter.login();

                            boolean processFurther = false;
                            while (!processFurther) {
                                if (LoginWithTwitter.deniedPermission)
                                    break;

                                twitterOAuthToken = getHomeModel().getHomeForm().getTwitterOAuthToken();
                                if (twitterOAuthToken == null) {
                                    Thread.sleep(10000);
                                } else {
                                    processFurther = true;
                                    isAlreadyLoggedIn = true;
                                }
                            }
                        } catch (IOException | InterruptedException ex) {
                            logger.error(ex);
                        }
                    }
                    if (!LoginWithTwitter.deniedPermission) {
                        Twitter twitter = new TwitterTemplate(SSNConstants.SSN_TWITTER_API_KEY,
                                SSNConstants.SSN_TWITTER_SECRET_KEY, twitterOAuthToken.getValue(),
                                twitterOAuthToken.getSecret());
                        TimelineOperations timelineOperations = twitter.timelineOperations();
                        if (!isAlreadyLoggedIn) {
                            SSNConfirmationDialogBox confirmeDialog = new SSNConfirmationDialogBox();
                            TwitterProfile userProfile = twitter.userOperations().getUserProfile();

                            String userName = "";
                            if (userProfile != null) {
                                userName = twitter.userOperations().getScreenName() != null
                                        ? twitter.userOperations().getScreenName()
                                        : userProfile.getName();
                            }
                            confirmeDialog.initDialogBoxUI(SSNDialogChoice.NOTIFICATION_DIALOG.getType(),
                                    "Confirmation", "",
                                    "You are already logged in with " + userName + ", Click OK to continue.");
                            int result = confirmeDialog.getResult();
                            if (result == JOptionPane.YES_OPTION) {
                                SwingUtilities.invokeLater(new Runnable() {
                                    public void run() {
                                        SSNMessageDialogBox messageDialogBox = new SSNMessageDialogBox();
                                        messageDialogBox.initDialogBoxUI(
                                                SSNDialogChoice.NOTIFICATION_DIALOG.getType(), "Message", "",
                                                "Successfully uploaded.");
                                        messageDialogBox.setFocusable(true);

                                    }
                                });
                            } else if (result == JOptionPane.NO_OPTION) {

                                twitterOAuthToken = null;
                                if (twitterOAuthToken == null) {
                                    try {
                                        LoginWithTwitter loginWithTwitter = new LoginWithTwitter(null);
                                        loginWithTwitter.setHomeForm(getHomeModel().getHomeForm());
                                        loginWithTwitter.login();

                                        boolean processFurther = false;
                                        while (!processFurther) {
                                            twitterOAuthToken = getHomeModel().getHomeForm()
                                                    .getTwitterOAuthToken();
                                            if (twitterOAuthToken == null) {
                                                Thread.sleep(10000);
                                            } else {
                                                processFurther = true;

                                            }
                                        }
                                        twitter = new TwitterTemplate(SSNConstants.SSN_TWITTER_API_KEY,
                                                SSNConstants.SSN_TWITTER_SECRET_KEY,
                                                twitterOAuthToken.getValue(), twitterOAuthToken.getSecret());
                                        timelineOperations = twitter.timelineOperations();
                                    } catch (IOException | InterruptedException ex) {
                                        logger.error(ex);
                                    }
                                }
                            }
                        }

                        for (String file : sharedFileList) {
                            Resource image = new FileSystemResource(file);

                            TweetData tweetData = new TweetData("At " + new Date());
                            tweetData.withMedia(image);
                            timelineOperations.updateStatus(tweetData);
                        }
                    } else {
                        SSNMessageDialogBox messageDialogBox = new SSNMessageDialogBox();
                        messageDialogBox.initDialogBoxUI(SSNDialogChoice.NOTIFICATION_DIALOG.getType(), "Alert",
                                "", "User denied for OurHive App permission on twitter.");
                        messageDialogBox.setFocusable(true);
                    }
                    getShareForm().dispose();
                }

            };
            thread.start();
            break;
        case "InstagramSharing":
            break;
        case "MailSharing":
            try {
                String OS = System.getProperty("os.name").toLowerCase();

                Set<String> sharedFileList = getFiles();
                Set<String> voiceNoteList = new HashSet<String>();
                for (String sharedFile : sharedFileList) {
                    String voiceNote = SSNDao.getVoiceCommandPath(new File(sharedFile).getAbsolutePath());
                    if (voiceNote != null && !voiceNote.isEmpty()) {
                        voiceNoteList.add(voiceNote);
                    }
                }
                sharedFileList.addAll(voiceNoteList);

                String fileFullPath = "";
                String caption = "";
                if (sharedFileList.size() == 1) {
                    fileFullPath = sharedFileList.toArray(new String[0])[0];

                    caption = SSMMediaGalleryPanel.readMetaDataForTitle(new File(fileFullPath));

                } else if (sharedFileList.size() > 1) {
                    fileFullPath = SSNHelper.createZipFileFromMultipleFiles(sharedFileList);
                }

                if (OS.contains("win")) {

                    // String subject = "SSN Subject";
                    String subject = caption.equals("") ? SSNConstants.SSN_SHARE_WITH_MAIL_SUBJECT : caption;
                    String body = "";
                    String m = "&subject=%s&body=%s";

                    String outLookExeDir = "C:\\Program Files\\Microsoft Office\\Office14\\Outlook.exe";
                    String mailCompose = "/c";
                    String note = "ipm.note";
                    String mailBodyContent = "/m";

                    m = String.format(m, subject, body);
                    String slashA = "/a";

                    String mailClientConfigParams[] = null;
                    Process startMailProcess = null;

                    mailClientConfigParams = new String[] { outLookExeDir, mailCompose, note, mailBodyContent,
                            m, slashA, fileFullPath };
                    startMailProcess = Runtime.getRuntime().exec(mailClientConfigParams);
                    OutputStream out = startMailProcess.getOutputStream();
                    File zipFile = new File(fileFullPath);
                    zipFile.deleteOnExit();
                } else if (OS.indexOf("mac") >= 0) {
                    //Process p = Runtime.getRuntime().exec(new String[]{String.format("open -a mail ", fileFullPath)});
                    Desktop desktop = Desktop.getDesktop();
                    String mailTo = caption.equals("") ? "?SUBJECT=" + SSNConstants.SSN_SHARE_WITH_MAIL_SUBJECT
                            : caption;
                    URI uriMailTo = null;
                    uriMailTo = new URI("mailto", mailTo, null);
                    desktop.mail(uriMailTo);
                }

                this.getShareForm().dispose();
            } catch (Exception ex) {
                logger.error(ex);
            }
            break;
        case "moveCopy":
            getShareForm().dispose();
            File album = new File(SSNHelper.getSsnHiveDirPath());
            File[] albumPaths = album.listFiles();
            Vector albumNames = new Vector();
            for (int i = 0; i < albumPaths.length; i++) {
                if (!(albumPaths[i].getName().equals("OurHive")) && SSNHelper.lastAlbum != null
                        && !(albumPaths[i].getName().equals(SSNHelper.lastAlbum)))
                    albumNames.add(albumPaths[i].getName());
            }
            if (SSNHelper.lastAlbum != null && !SSNHelper.lastAlbum.equals("OurHive"))
                albumNames.insertElementAt("OurHive", 0);

            SSNInputDialogBox inputBox = new SSNInputDialogBox(true, albumNames);
            inputBox.initDialogBoxUI(SSNDialogChoice.NOTIFICATION_DIALOG.getType(), "Copy Media",
                    "Please Select Album Name");
            String destAlbumName = inputBox.getTextValue();
            if (StringUtils.isNotBlank(destAlbumName)) {
                homeModel.moveAlbum(destAlbumName, getFiles());
            }

        }
        getShareForm().setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
    }
}

From source file:com.ssn.event.controller.SSNUntaggedMediaController.java

@Override
public void mouseClicked(MouseEvent e) {
    Object mouseEventObj = e.getSource();
    if (mouseEventObj != null && mouseEventObj instanceof JLabel) {
        JLabel label = (JLabel) mouseEventObj;
        JLabel toolbarLabel = SSNHomeController.currentLabel;
        this.getHomeModel().getHomeForm().getHomeController().setIconImage(toolbarLabel,
                "/icon/tagged-untagged-media.png", "allUntagged", SSNConstants.SSN_TOOLBAR_WHITE_FONT_COLOR);
        this.getHomeModel().getHomeForm().getHomeController().setIconImage(SSNToolBar.desktopHomeLabel,
                "/icon/white_icon/home.png", "home", SSNConstants.SSN_TEXT_LABEL_YELLOW_COLOR);
        this.getHomeModel().getHomeForm().setCursor(new Cursor(Cursor.WAIT_CURSOR));
        int timoutCount = 0;
        logger.info("mouseClicked() label " + label.getName());
        switch (label.getName()) {
        case "FacebookMedia":
            untaggedMediaForm.dispose();
            String facebookMessage = "User denied for OurHive App permission on facebook.";
            if ((this.getHomeModel().getHomeForm().getFacebookAccessGrant() != null
                    && !this.getHomeModel().getHomeForm().isLoggedInFromFaceBook()
                    && getFaceBookConnection() != null)
                    && this.getHomeModel().getHomeForm().isIsSocialSearched()) {

                try {
                    File searchFolder = new File(SSNHelper.getFacebookPhotosDirPath());
                    File folder = new File(SSNHelper.getSsnDefaultDirPath());
                    File[] files = searchFolder.listFiles();
                    String defaultAlbumPath = "";
                    if (searchFolder.list().length > 0) {
                        defaultAlbumPath = (searchFolder.listFiles())[0].getAbsolutePath();
                        files = new File(defaultAlbumPath).listFiles();
                    }//from w w w  . j a va 2s  . co  m

                    List<File> fileList = new ArrayList<File>();
                    for (File f : files) {
                        fileList.add(f);
                    }
                    Iterator<File> iterator = fileList.iterator();
                    while (iterator.hasNext()) {
                        File f = iterator.next();
                        boolean check = false;
                        try {
                            check = SSNDao
                                    .checkMediaExist(folder.getAbsolutePath() + File.separator + f.getName());
                        } catch (SQLException ex) {
                            //ex.printStackTrace();
                            logger.error(ex);
                        }
                        if (check) {
                            // iterator.remove();
                        }
                    }
                    File[] fileArray = new File[fileList.size()];
                    for (int i = 0; i < fileList.size(); i++) {
                        fileArray[i] = fileList.get(i);
                    }

                    //this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.setText("facebookMedia");
                    // this.getHomeModel().getHomeForm().ssnFileExplorer.m_tree.setSelectionRow(0);
                    this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.setText(defaultAlbumPath);

                    //this.getHomeModel().getHomeForm().ssnFileExplorer.m_tree.setSelectionRow(0);
                    this.getHomeModel().getHomeForm().getFileNamesToBeDeleted().clear();
                    //this.getHomeModel().getHomeForm().setCurrentSelectedFile(null);
                    SSNHelper.toggleDeleteAndShareImages(false, this.getHomeModel().getHomeForm());
                    SSNGalleryHelper contentPane = new SSNGalleryHelper(fileArray,
                            this.getHomeModel().getHomeForm());

                    contentPane.setBackground(SSNConstants.SSN_BLACK_BACKGROUND_COLOR);
                    this.getHomeModel().getHomeForm().getSsnHomeCenterPanel().removeAll();
                    this.getHomeModel().getHomeForm().getSsnHomeCenterMainPanel().removeAll();

                    this.getHomeModel().getHomeForm().getSsnHomeCenterPanel().add(this.getHomeModel()
                            .getHomeForm().getScrollPane(contentPane, SSNHelper.getAlbumNameFromPath(
                                    this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.getText())));
                    this.getHomeModel().getHomeForm().getSsnHomeCenterMainPanel().add(this.getHomeModel()
                            .getHomeForm()
                            .getSortPanel("Date", false, SSNHelper.getAlbumNameFromPath(
                                    this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.getText())),
                            BorderLayout.NORTH);
                    this.getHomeModel().getHomeForm().getSsnHomeCenterMainPanel().add(
                            this.getHomeModel().getHomeForm().getSsnHomeCenterPanel(), BorderLayout.CENTER);
                    this.getHomeModel().getSSNMediaFolderProperties(
                            this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.getText(), fileArray);

                    renderLeftPanel();
                    this.getHomeModel().getHomeForm().revalidate();
                } catch (IOException ex) {
                    //java.util.logging.Logger.getLogger(SSNUntaggedMediaController.class.getName()).log(Level.SEVERE, null, ex);
                    logger.error(ex);
                }

            } else {

                logger.info("Facebook login user not logged in mouseClicked switch case else part");
                LoginWithFacebook.deniedPermission = false;
                AccessGrant facebookAccessGrant = getHomeModel().getHomeForm().getFacebookAccessGrant();
                if (facebookAccessGrant == null) {
                    try {

                        LoginWithFacebook loginWithFacebook = new LoginWithFacebook(null);
                        loginWithFacebook.setHomeForm(getHomeModel().getHomeForm());
                        loginWithFacebook.login();
                        boolean processFurther = false;

                        while (!processFurther) {
                            if (LoginWithFacebook.deniedPermission) {
                                break;
                            }
                            facebookAccessGrant = getHomeModel().getHomeForm().getFacebookAccessGrant();
                            if (facebookAccessGrant == null) {

                                if (timoutCount > (5 * 5000)) {
                                    LoginWithFacebook.deniedPermission = true;
                                    facebookMessage = "No response from Facebook.";
                                    SSNHttpServer.getHttpServer().stop(0);
                                    break;
                                } else {
                                    Thread.sleep(5000);
                                    timoutCount += 5000;
                                }
                            } else {
                                processFurther = true;
                            }
                        }
                    } catch (InterruptedException ex) {
                        logger.error(ex);
                        //ex.printStackTrace();
                    } catch (Exception ex) {
                        logger.error(ex);
                        //ex.printStackTrace();
                    }
                }
                if (!LoginWithFacebook.deniedPermission) {
                    //                            FacebookConnectionFactory connectionFactory = new FacebookConnectionFactory(SSNConstants.SSN_FACEBOOK_API_KEY,
                    //                                    SSNConstants.SSN_FACEBOOK_SECRET_KEY);
                    Connection<Facebook> connection = getFaceBookConnection();
                    Facebook facebook = connection.getApi();
                    MediaOperations mediaOperations = facebook.mediaOperations();

                    PagedList<Album> albums = mediaOperations.getAlbums();

                    if (albums.size() > 0) {
                        Collections.sort(albums, new Comparator<Album>() {
                            @Override
                            public int compare(final Album object1, final Album object2) {
                                return object1.getName().compareTo(object2.getName());
                            }
                        });
                    }

                    if (albums != null && !albums.isEmpty()) {
                        try {
                            List<Photo> completePhotoList = new ArrayList<Photo>();
                            String albumName = "";
                            for (Album album : albums) {
                                List<Photo> listPhoto = new ArrayList<Photo>();
                                int captured = 0;
                                do {

                                    PagingParameters pagingParameters = new PagingParameters(100, captured,
                                            null, Calendar.getInstance().getTimeInMillis());
                                    listPhoto = mediaOperations.getPhotos(album.getId(), pagingParameters);
                                    captured += listPhoto.size();
                                    completePhotoList.addAll(listPhoto);
                                    albumName = album.getName();
                                    File facebookPhotosDir = new File(SSNHelper.getFacebookPhotosDirPath()
                                            + album.getName() + File.separator);
                                    if (!facebookPhotosDir.exists()) {
                                        facebookPhotosDir.mkdir();
                                    }

                                } while (listPhoto.size() > 0);
                                break;
                            }
                            File searchFolder = new File(
                                    SSNHelper.getFacebookPhotosDirPath() + File.separator + albumName);
                            if (!searchFolder.exists()) {
                                searchFolder.mkdirs();
                            } else {
                                //delete whole directory and create new one each time  
                                FileUtils.deleteDirectory(searchFolder);
                                searchFolder.mkdir();
                            }

                            for (Photo photo : completePhotoList) {
                                try {
                                    String imageUrl = "";
                                    for (Photo.Image image : photo.getImages()) {
                                        if (image != null && image.getHeight() <= 500) {
                                            imageUrl = image.getSource();
                                            break;
                                        }
                                    }

                                    if (imageUrl.isEmpty()) {
                                        imageUrl = photo.getSource();
                                    }
                                    URL url = new URL(imageUrl);
                                    File file = new File(searchFolder.getAbsolutePath() + File.separator
                                            + photo.getId() + ".jpg");
                                    if (!file.exists()) {
                                        try {
                                            FileUtils.copyURLToFile(url, file);
                                        } catch (Exception ex) {
                                            ex.printStackTrace();
                                            logger.error(ex);
                                        }
                                    }
                                } catch (MalformedURLException ex) {
                                    //    java.util.logging.Logger.getLogger(SSNUntaggedMediaController.class.getName()).log(Level.SEVERE, null, ex);
                                    logger.error(ex);
                                }

                            }

                            this.getHomeModel().getHomeForm().setIsSocialSearched(true);
                            File[] files = searchFolder.listFiles();
                            File folder = new File(SSNHelper.getSsnDefaultDirPath());
                            List<File> tempFileList = Arrays.asList(files);

                            List<File> fileList = new ArrayList<File>();
                            fileList.addAll(tempFileList);

                            Iterator<File> iterator = fileList.iterator();
                            while (iterator.hasNext()) {
                                File f = iterator.next();
                                boolean check = false;
                                try {
                                    check = SSNDao.checkMediaExist(
                                            folder.getAbsolutePath() + File.separator + f.getName());
                                } catch (SQLException ex) {
                                    ex.printStackTrace();
                                }
                                if (check) {
                                    //iterator.remove();
                                }
                            }
                            File[] fileArray = new File[fileList.size()];
                            for (int j = 0; j < fileList.size(); j++) {
                                fileArray[j] = fileList.get(j);
                            }
                            String rootPath = SSNHelper.getSsnHiveDirPath();
                            //this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.setText("facebookMedia");
                            //this.getHomeModel().getHomeForm().ssnFileExplorer.m_tree.setSelectionRow(0);

                            this.getHomeModel().getHomeForm().ssnFileExplorer.m_display
                                    .setText(searchFolder.getAbsolutePath());
                            // this.getHomeModel().getHomeForm().getFileNamesToBeDeleted().clear();
                            // this.getHomeModel().getHomeForm().setCurrentSelectedFile(null);
                            // this.getHomeModel().getHomeForm().ssnFileExplorer.m_tree.setSelectionRow(0);
                            SSNHelper.toggleDeleteAndShareImages(false, this.getHomeModel().getHomeForm());
                            SSNGalleryHelper contentPane = new SSNGalleryHelper(fileArray,
                                    this.getHomeModel().getHomeForm());

                            contentPane.setBackground(SSNConstants.SSN_BLACK_BACKGROUND_COLOR);
                            this.getHomeModel().getHomeForm().getSsnHomeCenterPanel().removeAll();
                            this.getHomeModel().getHomeForm().getSsnHomeCenterMainPanel().removeAll();

                            this.getHomeModel().getHomeForm().getSsnHomeCenterPanel()
                                    .add(this.getHomeModel().getHomeForm().getScrollPane(contentPane,
                                            SSNHelper.getAlbumNameFromPath(
                                                    this.getHomeModel().getHomeForm().ssnFileExplorer.m_display
                                                            .getText())));
                            this.getHomeModel().getHomeForm().getSsnHomeCenterMainPanel()
                                    .add(this.getHomeModel().getHomeForm().getSortPanel("Date", false,
                                            SSNHelper.getAlbumNameFromPath(
                                                    this.getHomeModel().getHomeForm().ssnFileExplorer.m_display
                                                            .getText())),
                                            BorderLayout.NORTH);
                            this.getHomeModel().getHomeForm().getSsnHomeCenterMainPanel().add(
                                    this.getHomeModel().getHomeForm().getSsnHomeCenterPanel(),
                                    BorderLayout.CENTER);
                            this.getHomeModel().getSSNMediaFolderProperties(
                                    this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.getText(),
                                    fileArray);

                            renderLeftPanel();
                            this.getHomeModel().getHomeForm().revalidate();
                            // System.out.println("Show gallery  " + new Date());
                        } catch (IOException ex) {
                            logger.error(ex);
                        }

                    }
                } else {
                    SSNMessageDialogBox messageDialogBox = new SSNMessageDialogBox();
                    messageDialogBox.initDialogBoxUI(SSNDialogChoice.NOTIFICATION_DIALOG.getType(), "Alert", "",
                            facebookMessage);
                    messageDialogBox.setFocusable(true);
                }
            }
            break;
        case "InstagramMedia":
            untaggedMediaForm.dispose();
            String instagarmMessage = "User denied for OurHive App permission on instagram!";
            if ((this.getHomeModel().getHomeForm().getInstagramAccessGrant() != null
                    && !this.getHomeModel().getHomeForm().isLoggedInFromInstagram())
                    || this.getHomeModel().getHomeForm().isInstagramSearched()) {
                try {
                    // System.out.println("inside ");
                    File searchFolder = new File(
                            SSNHelper.getSsnWorkSpaceDirPath() + File.separator + "Instagram Media");
                    File folder = new File(SSNHelper.getSsnHiveDirPath() + File.separator + "InstagramMedia");
                    File[] files = searchFolder.listFiles();
                    List<File> fileList = new ArrayList<File>();
                    for (File f : files) {
                        fileList.add(f);
                    }
                    Iterator<File> iterator = fileList.iterator();
                    while (iterator.hasNext()) {
                        File f = iterator.next();
                        boolean check = false;
                        try {
                            check = SSNDao
                                    .checkMediaExist(folder.getAbsolutePath() + File.separator + f.getName());
                        } catch (SQLException ex) {
                            ex.printStackTrace();
                        }
                        if (check) {
                            // iterator.remove();
                        }
                    }
                    File[] fileArray = new File[fileList.size()];
                    for (int i = 0; i < fileList.size(); i++) {
                        fileArray[i] = fileList.get(i);
                    }

                    String rootPath = SSNHelper.getSsnHiveDirPath();

                    this.getHomeModel().getHomeForm().setCurrentSelectedFile(null);
                    this.getHomeModel().getHomeForm().ssnFileExplorer.m_tree.setSelectionPath(null);
                    this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.setText("instagramMedia");

                    //this.getHomeModel().getHomeForm().ssnFileExplorer.m_tree.setSelectionRow(0);
                    //this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.setText(searchFolder.getAbsolutePath());
                    this.getHomeModel().getHomeForm().getFileNamesToBeDeleted().clear();
                    this.getHomeModel().getHomeForm().setCurrentSelectedFile(null);
                    SSNHelper.toggleDeleteAndShareImages(false, this.getHomeModel().getHomeForm());
                    SSNGalleryHelper contentPane = new SSNGalleryHelper(fileArray,
                            this.getHomeModel().getHomeForm());

                    contentPane.setBackground(SSNConstants.SSN_BLACK_BACKGROUND_COLOR);
                    this.getHomeModel().getHomeForm().getSsnHomeCenterPanel().removeAll();
                    this.getHomeModel().getHomeForm().getSsnHomeCenterMainPanel().removeAll();

                    this.getHomeModel().getHomeForm().getSsnHomeCenterPanel().add(
                            this.getHomeModel().getHomeForm().getScrollPane(contentPane, "Instagram Media"));
                    this.getHomeModel().getHomeForm().getSsnHomeCenterMainPanel().add(this.getHomeModel()
                            .getHomeForm()
                            .getSortPanel("Date", false, SSNHelper.getAlbumNameFromPath(
                                    this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.getText())),
                            BorderLayout.NORTH);
                    this.getHomeModel().getHomeForm().getSsnHomeCenterMainPanel().add(
                            this.getHomeModel().getHomeForm().getSsnHomeCenterPanel(), BorderLayout.CENTER);
                    this.getHomeModel().getSSNMediaFolderProperties(
                            this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.getText(), fileArray);
                    renderLeftPanel();
                    this.getHomeModel().getHomeForm().revalidate();
                } catch (IOException ex) {
                    logger.error(ex);
                }
            } else {
                try {
                    // System.out.println("cancle " + LoginWithInstagram.deniedInstagramPermission);
                    LoginWithInstagram.deniedInstagramPermission = false;
                    AccessGrant instgramAccessGrant = getHomeModel().getHomeForm().getInstagramAccessGrant();
                    if (instgramAccessGrant == null) {
                        try {

                            LoginWithInstagram loginWithInstagram = new LoginWithInstagram(
                                    getHomeModel().getHomeForm());

                            loginWithInstagram.login();
                            boolean processFurther = false;
                            while (!processFurther) {
                                if (LoginWithInstagram.deniedInstagramPermission) {
                                    break;
                                }
                                instgramAccessGrant = getHomeModel().getHomeForm().getInstagramAccessGrant();
                                if (instgramAccessGrant == null) {
                                    if (timoutCount > (5 * 5000)) {
                                        LoginWithInstagram.deniedInstagramPermission = true;
                                        instagarmMessage = "No response from instagram.";
                                        SSNHttpServer.getHttpServer().stop(0);
                                        break;
                                    } else {
                                        Thread.sleep(5000);
                                        timoutCount += 5000;
                                    }
                                } else {
                                    processFurther = true;
                                }
                            }
                        } catch (InterruptedException ex) {
                            logger.error(ex);
                        }
                    }
                    if (!LoginWithInstagram.deniedInstagramPermission) {
                        String urlString = String.format(
                                "https://api.instagram.com/v1/users/self/media/recent/?access_token=%s",
                                instgramAccessGrant.getAccessToken());
                        List<InstagramMedia> imageList = new ArrayList<>();
                        getMedia(urlString, imageList);
                        File searchFolder = new File(
                                SSNHelper.getSsnWorkSpaceDirPath() + File.separator + "Instagram Media");
                        if (!searchFolder.exists()) {
                            searchFolder.mkdirs();
                        } else {
                            //delete whole directory and create new one each time  
                            FileUtils.deleteDirectory(searchFolder);
                            searchFolder.mkdir();
                        }
                        for (InstagramMedia photo : imageList) {
                            String imageUrl = photo.getImageUrl();

                            URL url = new URL(imageUrl);
                            File file = new File(
                                    searchFolder.getAbsolutePath() + File.separator + photo.getId() + ".jpg");
                            if (!file.exists()) {
                                try {

                                    FileUtils.copyURLToFile(url, file);

                                } catch (Exception ex) {
                                    logger.error(ex);
                                }
                            }
                        }
                        this.getHomeModel().getHomeForm().setInstagramSearched(true);
                        File[] files = searchFolder.listFiles();
                        File folder = new File(SSNHelper.getSsnDefaultDirPath());
                        List<File> fileList = new ArrayList<File>();
                        for (File f : files) {
                            fileList.add(f);
                        }
                        Iterator<File> iterator = fileList.iterator();
                        while (iterator.hasNext()) {
                            File f = iterator.next();
                            boolean check = false;
                            try {
                                check = SSNDao.checkMediaExist(
                                        folder.getAbsolutePath() + File.separator + f.getName());
                            } catch (SQLException ex) {
                                ex.printStackTrace();
                                logger.error(ex);
                            }
                            if (check) {
                                //  iterator.remove();
                            }
                        }
                        File[] fileArray = new File[fileList.size()];
                        for (int j = 0; j < fileList.size(); j++) {
                            fileArray[j] = fileList.get(j);
                        }
                        String rootPath = SSNHelper.getSsnHiveDirPath();

                        this.getHomeModel().getHomeForm().setCurrentSelectedFile(null);
                        this.getHomeModel().getHomeForm().ssnFileExplorer.m_tree.setSelectionPath(null);
                        this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.setText("instagramMedia");

                        //this.getHomeModel().getHomeForm().ssnFileExplorer.m_tree.setSelectionRow(0);
                        // this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.setText(searchFolder.getAbsolutePath());
                        this.getHomeModel().getHomeForm().getFileNamesToBeDeleted().clear();
                        //this.getHomeModel().getHomeForm().setCurrentSelectedFile(null);

                        SSNHelper.toggleDeleteAndShareImages(false, this.getHomeModel().getHomeForm());
                        SSNGalleryHelper contentPane = new SSNGalleryHelper(fileArray,
                                this.getHomeModel().getHomeForm());

                        contentPane.setBackground(SSNConstants.SSN_BLACK_BACKGROUND_COLOR);
                        this.getHomeModel().getHomeForm().getSsnHomeCenterPanel().removeAll();
                        this.getHomeModel().getHomeForm().getSsnHomeCenterMainPanel().removeAll();

                        this.getHomeModel().getHomeForm().getSsnHomeCenterPanel().add(this.getHomeModel()
                                .getHomeForm().getScrollPane(contentPane, "Instagram Media"));
                        this.getHomeModel().getHomeForm().getSsnHomeCenterMainPanel().add(this.getHomeModel()
                                .getHomeForm()
                                .getSortPanel("Date", false, SSNHelper.getAlbumNameFromPath(
                                        this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.getText())),
                                BorderLayout.NORTH);
                        this.getHomeModel().getHomeForm().getSsnHomeCenterMainPanel().add(
                                this.getHomeModel().getHomeForm().getSsnHomeCenterPanel(), BorderLayout.CENTER);
                        this.getHomeModel().getSSNMediaFolderProperties(
                                this.getHomeModel().getHomeForm().ssnFileExplorer.m_display.getText(),
                                fileArray);

                        renderLeftPanel();
                        this.getHomeModel().getHomeForm().revalidate();
                    } else {
                        SSNMessageDialogBox messageDialogBox = new SSNMessageDialogBox();
                        messageDialogBox.initDialogBoxUI(SSNDialogChoice.NOTIFICATION_DIALOG.getType(), "Alert",
                                "", instagarmMessage);
                        messageDialogBox.setFocusable(true);
                    }

                } catch (ProtocolException ex) {
                    // ex.printStackTrace();
                    logger.error(ex);
                    //             java.util.logging.Logger.getLogger(SSNUntaggedMediaController.class.getName()).log(Level.SEVERE, null, ex);
                } catch (IOException ex) {
                    //ex.printStackTrace();
                    logger.error(ex);
                    //         java.util.logging.Logger.getLogger(SSNUntaggedMediaController.class.getName()).log(Level.SEVERE, null, ex);
                }

            }
            break;
        case "deviceMedia":
            untaggedMediaForm.dispose();
            this.getHomeModel().findTagUntaggedMedia();
            break;
        case "Cancel":
            untaggedMediaForm.dispose();
        }
        SSNHomeController.isUnTaggedOpen = false;
        untaggedMediaForm.dispose();
        this.getHomeModel().getHomeForm().setCursor(new Cursor(Cursor.DEFAULT_CURSOR));
    }
}