private void loadDefaultsClick(DialogAccess dlg) {
      updateStyleMaps(dlg);

      // Count styles that we will overwrite
      Config clean = ConverterFactory.createConverter(getMIMEType()).getConfig();
      clean.readDefaultConfig(getDefaultConfigName());

      int nCount = 0;
      int nFamilyCount = sFamilyNames.length;
      for (int i = 0; i < nFamilyCount; i++) {
        ComplexOption cleanMap = clean.getComplexOption(sFamilyNames[i] + "-map");
        Map<String, String> displayNames = styleNameProvider.getDisplayNames(sOOoFamilyNames[i]);
        for (String sName : cleanMap.keySet()) {
          String sDisplayName =
              (displayNames != null && displayNames.containsKey(sName))
                  ? displayNames.get(sName)
                  : "";
          if (styleMap[i].containsKey(sDisplayName)) {
            nCount++;
          }
        }
      }

      // Display confirmation dialog
      boolean bConfirm = false;
      XDialog xDialog = getDialog(getDialogLibraryName() + ".LoadDefaults");
      if (xDialog != null) {
        DialogAccess ldlg = new DialogAccess(xDialog);
        if (nCount > 0) {
          String sLabel = ldlg.getLabelText("OverwriteLabel");
          sLabel = sLabel.replaceAll("%s", Integer.toString(nCount));
          ldlg.setLabelText("OverwriteLabel", sLabel);
        } else {
          ldlg.setLabelText("OverwriteLabel", "");
        }
        bConfirm = xDialog.execute() == ExecutableDialogResults.OK;
        xDialog.endExecute();
      }

      // Do the replacement
      if (bConfirm) {
        for (int i = 0; i < nFamilyCount; i++) {
          ComplexOption cleanMap = clean.getComplexOption(sFamilyNames[i] + "-map");
          Map<String, String> displayNames = styleNameProvider.getDisplayNames(sOOoFamilyNames[i]);
          copyStyles(cleanMap, styleMap[i], displayNames);
        }
      }

      // Force update of the user interface
      nCurrentFamily = -1;
      sCurrentStyleName = null;
      styleFamilyChange(dlg);
    }
 // Method to display delete dialog
 protected boolean deleteItem(String sName) {
   XDialog xDialog = getDialog(getDialogLibraryName() + ".DeleteDialog");
   if (xDialog != null) {
     DialogAccess ddlg = new DialogAccess(xDialog);
     String sLabel = ddlg.getLabelText("DeleteLabel");
     sLabel = sLabel.replaceAll("%s", sName);
     ddlg.setLabelText("DeleteLabel", sLabel);
     boolean bDelete = xDialog.execute() == ExecutableDialogResults.OK;
     xDialog.endExecute();
     return bDelete;
   }
   return false;
 }
 private String newItem(Set<String> suggestions) {
   XDialog xDialog = getDialog(getDialogLibraryName() + ".NewDialog");
   if (xDialog != null) {
     String[] sItems = Misc.sortStringSet(suggestions);
     DialogAccess ndlg = new DialogAccess(xDialog);
     ndlg.setListBoxStringItemList("Name", sItems);
     String sResult = null;
     if (xDialog.execute() == ExecutableDialogResults.OK) {
       DialogAccess dlg = new DialogAccess(xDialog);
       sResult = dlg.getTextFieldText("Name");
     }
     xDialog.endExecute();
     return sResult;
   }
   return null;
 }
예제 #4
0
  public void close() throws Exception {

    XWindow xWindow = (XWindow) UnoRuntime.queryInterface(XWindow.class, xDialogContainer);

    // set the dialog invisible until it is executed
    xWindow.setVisible(false);

    Object oToolkit =
        xMultiComponentFactory.createInstanceWithContext(
            "com.sun.star.awt.Toolkit", xComponentContext);
    XWindowPeer xWindowParentPeer =
        ((XToolkit) UnoRuntime.queryInterface(XToolkit.class, oToolkit)).getDesktopWindow();
    XToolkit xToolkit = (XToolkit) UnoRuntime.queryInterface(XToolkit.class, oToolkit);
    xDialogControl.createPeer(xToolkit, xWindowParentPeer);

    // the return value contains information about how the dialog has been closed
    XDialog xDialog = (XDialog) UnoRuntime.queryInterface(XDialog.class, xDialogControl);
    xDialog.endExecute();
  }
  // Implement XContainerWindowEventHandler
  public boolean callHandlerMethod(XWindow xWindow, Object event, String sMethod)
      throws com.sun.star.lang.WrappedTargetException {
    XDialog xDialog = (XDialog) UnoRuntime.queryInterface(XDialog.class, xWindow);
    String sTitle = xDialog.getTitle();

    if (!pageHandlers.containsKey(sTitle)) {
      throw new com.sun.star.lang.WrappedTargetException("Unknown dialog " + sTitle);
    }

    DialogAccess dlg = new DialogAccess(xDialog);

    try {
      if (sMethod.equals("external_event")) {
        return handleExternalEvent(dlg, sTitle, event);
      }
    } catch (com.sun.star.uno.RuntimeException e) {
      throw e;
    } catch (com.sun.star.uno.Exception e) {
      throw new com.sun.star.lang.WrappedTargetException(sMethod, this, e);
    }

    return pageHandlers.get(sTitle).handleEvent(dlg, sMethod);
  }