當前位置: 首頁>>代碼示例>>Java>>正文


Java FileChooserDescriptor.isChooseFiles方法代碼示例

本文整理匯總了Java中com.intellij.openapi.fileChooser.FileChooserDescriptor.isChooseFiles方法的典型用法代碼示例。如果您正苦於以下問題:Java FileChooserDescriptor.isChooseFiles方法的具體用法?Java FileChooserDescriptor.isChooseFiles怎麽用?Java FileChooserDescriptor.isChooseFiles使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在com.intellij.openapi.fileChooser.FileChooserDescriptor的用法示例。


在下文中一共展示了FileChooserDescriptor.isChooseFiles方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: callback

import com.intellij.openapi.fileChooser.FileChooserDescriptor; //導入方法依賴的package包/類
@SuppressWarnings("UnusedDeclaration")
public void callback(ID self, String selector, ID toSelect) {
  final ID nsOpenPanel = Foundation.getObjcClass("NSOpenPanel");
  final ID chooser = invoke(nsOpenPanel, "openPanel");
  // Release in OPEN_PANEL_DID_END panel
  Foundation.cfRetain(chooser);

  final FileChooserDescriptor chooserDescriptor = ourImplMap.get(self).myChooserDescriptor;

  invoke(chooser, "setPrompt:", Foundation.nsString("Choose"));
  invoke(chooser, "setCanChooseFiles:", chooserDescriptor.isChooseFiles() || chooserDescriptor.isChooseJars());
  invoke(chooser, "setCanChooseDirectories:", chooserDescriptor.isChooseFolders());
  invoke(chooser, "setAllowsMultipleSelection:", chooserDescriptor.isChooseMultiple());
  invoke(chooser, "setTreatsFilePackagesAsDirectories:", chooserDescriptor.isChooseFolders());
  invoke(chooser, "setResolvesAliases:", false);

  String description = chooserDescriptor.getDescription();
  if (!StringUtil.isEmpty(description)) {
    invoke(chooser, "setMessage:", Foundation.nsString(StringUtil.removeHtmlTags(description)));
  }

  if (Foundation.isClassRespondsToSelector(nsOpenPanel, Foundation.createSelector("setCanCreateDirectories:"))) {
    invoke(chooser, "setCanCreateDirectories:", true);
  }
  else if (Foundation.isClassRespondsToSelector(nsOpenPanel, Foundation.createSelector("_setIncludeNewFolderButton:"))) {
    invoke(chooser, "_setIncludeNewFolderButton:", true);
  }

  boolean showHidden = chooserDescriptor.isShowHiddenFiles() || Registry.is("ide.mac.file.chooser.show.hidden.files");
  if (showHidden) {
    if (Foundation.isClassRespondsToSelector(nsOpenPanel, Foundation.createSelector("setShowsHiddenFiles:"))) {
      invoke(chooser, "setShowsHiddenFiles:", true);
    }
  }

  invoke(chooser, "setDelegate:", self);

  ID directory = null;
  ID file = null;
  final String toSelectPath = toSelect == null || toSelect.intValue() == 0 ? null : Foundation.toStringViaUTF8(toSelect);
  if (toSelectPath != null) {
    final File toSelectFile = new File(toSelectPath);
    if (toSelectFile.isDirectory()) {
      directory = toSelect;
    }
    else if (toSelectFile.isFile()) {
      directory = Foundation.nsString(toSelectFile.getParent());
      file = Foundation.nsString(toSelectFile.getName());
    }
  }

  ID types = null;
  if (!chooserDescriptor.isChooseFiles() && chooserDescriptor.isChooseJars()) {
    types = invoke("NSArray", "arrayWithObjects:", Foundation.nsString("jar"), Foundation.nsString("zip"), null);
  }

  final Window activeWindow = KeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow();
  if (activeWindow != null) {
    String activeWindowTitle = null;
    if (activeWindow instanceof Frame) {
      activeWindowTitle = ((Frame)activeWindow).getTitle();
    }
    else if (activeWindow instanceof JDialog) {
      activeWindowTitle = ((JDialog)activeWindow).getTitle();
    }

    final ID focusedWindow = MacUtil.findWindowForTitle(activeWindowTitle);
    if (focusedWindow != null) {
      invoke(chooser, "beginSheetForDirectory:file:types:modalForWindow:modalDelegate:didEndSelector:contextInfo:",
             directory, file, types, focusedWindow, self, Foundation.createSelector("openPanelDidEnd:returnCode:contextInfo:"), chooser);
    }
  }
}
 
開發者ID:jskierbi,項目名稱:intellij-ce-playground,代碼行數:74,代碼來源:MacFileChooserDialogImpl.java


注:本文中的com.intellij.openapi.fileChooser.FileChooserDescriptor.isChooseFiles方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。