/** * 批量删除指定名称的布局 * * @param mapLayoutNames 布局名称 */ public static void deleteMapLayout(String[] mapLayoutNames) { try { String message = ""; if (mapLayoutNames.length == 1) { message = CoreProperties.getString("String_LayoutDelete_Confirm"); message = message + System.lineSeparator() + String.format( CoreProperties.getString("String_LayoutDelete_Confirm_One"), mapLayoutNames[0]); } else { message = CoreProperties.getString("String_LayoutDelete_Confirm"); message = message + System.lineSeparator() + String.format( CoreProperties.getString("String_LayoutDelete_Confirm_Multi"), mapLayoutNames.length); } if (!Objects.equals(message, "") && (JOptionPaneUtilties.showConfirmDialog(message) == JOptionPane.OK_OPTION)) { for (String mapLayoutName : mapLayoutNames) { Application.getActiveApplication().getWorkspace().getLayouts().remove(mapLayoutName); } } } catch (Exception ex) { Application.getActiveApplication().getOutput().output(ex); } }
/** * 获取具有指定前缀的可用布局名称 * * @param layoutName 指定前缀 * @param isNewWindow 是否是新窗口 * @return */ public static String getAvailableLayoutName(String layoutName, boolean isNewWindow) { String layoutNameTemp = layoutName; String availableLayoutName = layoutNameTemp.toLowerCase(); try { if (layoutNameTemp == null || layoutNameTemp.length() <= 0) { layoutNameTemp = CoreProperties.getString("String_WorkspaceNodeCaptionLayout"); } ArrayList<String> allLayoutNames = new ArrayList<String>(); for (int index = 0; index < Application.getActiveApplication().getWorkspace().getLayouts().getCount(); index++) { allLayoutNames.add( Application.getActiveApplication() .getWorkspace() .getLayouts() .get(index) .toLowerCase()); } for (int index = 0; index < Application.getActiveApplication().getMainFrame().getFormManager().getCount(); index++) { IForm form = Application.getActiveApplication().getMainFrame().getFormManager().get(index); if (form instanceof IFormLayout) { allLayoutNames.add(form.getText().toLowerCase()); } } if (!allLayoutNames.contains(availableLayoutName)) { availableLayoutName = layoutNameTemp; } else { int indexLayoutName = 1; while (true) { availableLayoutName = String.format("%s%d", layoutNameTemp, indexLayoutName); if (!allLayoutNames.contains(availableLayoutName.toLowerCase())) { break; } indexLayoutName += 1; } } } catch (Exception ex) { Application.getActiveApplication().getOutput().output(ex); } return availableLayoutName; }