DiffResultsView.java 文件源码

java
阅读 26 收藏 0 点赞 0 评论 0

项目:incubator-netbeans 作者:
@Override
public void perform () {
    showDiffError(NbBundle.getMessage(DiffResultsView.class, "MSG_DiffPanel_LoadingDiff")); //NOI18N
    if (revision1 == null) {
        try {
            revision1 = event2.getLogInfoHeader().getAncestorCommit(event2.getOriginalFile(), getClient(), GitUtils.NULL_PROGRESS_MONITOR);
            file1 = event2.getOriginalFile();
            baseFile1 = event2.getFile();
        } catch (GitException ex) {
            LOG.log(Level.INFO, null, ex);
            showDiffError(NbBundle.getMessage(DiffResultsView.class, "MSG_DiffPanel_LoadingDiff")); //NOI18N
            return;
        }
    }
    if (isCanceled()) {
        return;
    }
    String title1, title2;
    title1 = revision1 == null ? null : revision1.substring(0, 7);
    title2 = event2.getLogInfoHeader().getLog().getRevision() == null ? null : event2.getLogInfoHeader().getLog().getRevision().substring(0, 7);
    s1 = new DiffStreamSource(file1, baseFile1, revision1, file1.getName() + (title1 == null ? "" : (" (" + title1 + ")"))); //NOI18N
    s2 = new DiffStreamSource(event2.getFile(), event2.getFile(), event2.getLogInfoHeader().getLog().getRevision(), 
            event2.getFile().getName() + (title2 == null ? "" : (" (" + title2 + ")"))); //NOI18N

    // it's enqueued at ClientRuntime queue and does not return until previous request handled
    s1.getMIMEType();  // triggers s1.init()
    if (isCanceled()) {
        showDiffError(NbBundle.getMessage(DiffResultsView.class, "MSG_DiffPanel_NoRevisions")); // NOI18N
        return;
    }

    s2.getMIMEType();  // triggers s2.init()
    if (isCanceled()) {
        showDiffError(NbBundle.getMessage(DiffResultsView.class, "MSG_DiffPanel_NoRevisions")); // NOI18N
        return;
    }

    if (currentTask != this) return;

    EventQueue.invokeLater(new Runnable() {
        @Override
        public void run() {
            try {
                if (isCanceled()) {
                    showDiffError(NbBundle.getMessage(DiffResultsView.class, "MSG_DiffPanel_NoRevisions")); // NOI18N
                    return;
                }
                final DiffController view = DiffController.createEnhanced(s1, s2);
                if (currentTask == ShowDiffTask.this) {
                    currentDiff = view;
                    setBottomComponent(currentDiff.getJComponent());
                    final int dl = diffView.getDividerLocation();
                    if (!setLocation(view)) {
                        view.addPropertyChangeListener(new PropertyChangeListener() {
                            @Override
                            public void propertyChange(PropertyChangeEvent evt) {
                                view.removePropertyChangeListener(this);
                                setLocation(view);
                                parent.updateActions();
                            }
                        });
                    }
                    parent.refreshComponents(false);
                    EventQueue.invokeLater(new Runnable () {
                        @Override
                        public void run() {
                            diffView.setDividerLocation(dl);
                        }
                    });
                }
            } catch (IOException e) {
                ErrorManager.getDefault().notify(ErrorManager.INFORMATIONAL, e);
            }
        }
    });
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号