summaryrefslogtreecommitdiff
path: root/wizards/com/sun/star/wizards/ui/PathSelection.java
diff options
context:
space:
mode:
Diffstat (limited to 'wizards/com/sun/star/wizards/ui/PathSelection.java')
-rwxr-xr-xwizards/com/sun/star/wizards/ui/PathSelection.java188
1 files changed, 188 insertions, 0 deletions
diff --git a/wizards/com/sun/star/wizards/ui/PathSelection.java b/wizards/com/sun/star/wizards/ui/PathSelection.java
new file mode 100755
index 000000000000..4cb101382c6d
--- /dev/null
+++ b/wizards/com/sun/star/wizards/ui/PathSelection.java
@@ -0,0 +1,188 @@
+/*
+ ************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+package com.sun.star.wizards.ui;
+
+import com.sun.star.awt.XTextComponent;
+import com.sun.star.lang.XMultiServiceFactory;
+import com.sun.star.uno.Exception;
+import com.sun.star.wizards.common.FileAccess;
+import com.sun.star.wizards.common.SystemDialog;
+
+public class PathSelection
+{
+
+ UnoDialog2 CurUnoDialog;
+ XMultiServiceFactory xMSF;
+ int iDialogType;
+ int iTransferMode;
+ public String sDefaultDirectory = "";
+ public String sDefaultName = "";
+ public String sDefaultFilter = "";
+ public boolean usedPathPicker = false;
+ public XPathSelectionListener xAction;
+ public XTextComponent xSaveTextBox;
+ private final int CMDSELECTPATH = 1;
+ private final int TXTSAVEPATH = 1;
+
+ public static class DialogTypes
+ {
+
+ public static final int FOLDER = 0;
+ public static final int FILE = 1;
+ }
+
+ public static class TransferMode
+ {
+
+ public static final int SAVE = 0;
+ public static final int LOAD = 1;
+ }
+
+ public PathSelection(XMultiServiceFactory xMSF, UnoDialog2 CurUnoDialog, int TransferMode, int DialogType)
+ {
+ this.CurUnoDialog = CurUnoDialog;
+ this.xMSF = xMSF;
+ this.iDialogType = DialogType;
+ this.iTransferMode = TransferMode;
+
+ }
+
+ public void insert(int DialogStep, int XPos, int YPos, int Width, short CurTabIndex, String LabelText, boolean Enabled, String TxtHelpURL, String BtnHelpURL)
+ {
+
+ CurUnoDialog.insertControlModel("com.sun.star.awt.UnoControlFixedTextModel", "lblSaveAs", new String[]
+ {
+ "Enabled", "Height", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"
+ }, new Object[]
+ {
+ new Boolean(Enabled), new Integer(8), LabelText, new Integer(XPos), new Integer(YPos), new Integer(DialogStep), new Short(CurTabIndex), new Integer(Width)
+ });
+
+ xSaveTextBox = CurUnoDialog.insertTextField("txtSavePath", "callXPathSelectionListener", this, new String[]
+ {
+ "Enabled", "Height", "HelpURL", "PositionX", "PositionY", "Step", "TabIndex", "Width"
+ }, new Object[]
+ {
+ new Boolean(Enabled), new Integer(12), TxtHelpURL, new Integer(XPos), new Integer(YPos + 10), new Integer(DialogStep), new Short((short) (CurTabIndex + 1)), new Integer(Width - 26)
+ });
+ //CurUnoDialog.setControlProperty("txtSavePath", "ReadOnly", Boolean.TRUE);
+ CurUnoDialog.setControlProperty("txtSavePath", "Enabled", Boolean.FALSE);
+ CurUnoDialog.insertButton("cmdSelectPath", "triggerPathPicker", this, new String[]
+ {
+ "Enabled", "Height", "HelpURL", "Label", "PositionX", "PositionY", "Step", "TabIndex", "Width"
+ }, new Object[]
+ {
+ new Boolean(Enabled), new Integer(14), BtnHelpURL, "...", new Integer(XPos + Width - 16), new Integer(YPos + 9), new Integer(DialogStep), new Short((short) (CurTabIndex + 2)), new Integer(16)
+ });
+
+ }
+
+ public void addSelectionListener(XPathSelectionListener xAction)
+ {
+ this.xAction = xAction;
+ }
+
+ public String getSelectedPath()
+ {
+ return xSaveTextBox.getText();
+ }
+
+ public void initializePath()
+ {
+ try
+ {
+ FileAccess myFA = new FileAccess(xMSF);
+ xSaveTextBox.setText(myFA.getPath(sDefaultDirectory + "/" + sDefaultName, null));
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+
+ public void triggerPathPicker()
+ {
+ try
+ {
+ switch (iTransferMode)
+ {
+ case TransferMode.SAVE:
+ switch (iDialogType)
+ {
+ case DialogTypes.FOLDER:
+ //TODO: write code for picking a folder for saving
+ break;
+ case DialogTypes.FILE:
+ usedPathPicker = true;
+ SystemDialog myFilePickerDialog = SystemDialog.createStoreDialog(xMSF);
+ myFilePickerDialog.callStoreDialog(sDefaultDirectory, sDefaultName, sDefaultFilter);
+ String sStorePath = myFilePickerDialog.sStorePath;
+ if (sStorePath != null)
+ {
+ FileAccess myFA = new FileAccess(xMSF);
+ xSaveTextBox.setText(myFA.getPath(sStorePath, null));
+ sDefaultDirectory = FileAccess.getParentDir(sStorePath);
+ sDefaultName = myFA.getFilename(sStorePath);
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+ case TransferMode.LOAD:
+ switch (iDialogType)
+ {
+ case DialogTypes.FOLDER:
+ //TODO: write code for picking a folder for loading
+ break;
+ case DialogTypes.FILE:
+ //TODO: write code for picking a file for loading
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ catch (Exception e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ public void callXPathSelectionListener()
+ {
+ if (xAction != null)
+ {
+ xAction.validatePath();
+ }
+ }
+}