summaryrefslogtreecommitdiff
path: root/wizards/com/sun/star/wizards/web/FTPDialog.java
diff options
context:
space:
mode:
Diffstat (limited to 'wizards/com/sun/star/wizards/web/FTPDialog.java')
-rw-r--r--wizards/com/sun/star/wizards/web/FTPDialog.java741
1 files changed, 0 insertions, 741 deletions
diff --git a/wizards/com/sun/star/wizards/web/FTPDialog.java b/wizards/com/sun/star/wizards/web/FTPDialog.java
deleted file mode 100644
index 13faea96ad74..000000000000
--- a/wizards/com/sun/star/wizards/web/FTPDialog.java
+++ /dev/null
@@ -1,741 +0,0 @@
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- * This file incorporates work covered by the following license notice:
- *
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed
- * with this work for additional information regarding copyright
- * ownership. The ASF licenses this file to you under the Apache
- * License, Version 2.0 (the "License"); you may not use this file
- * except in compliance with the License. You may obtain a copy of
- * the License at http://www.apache.org/licenses/LICENSE-2.0 .
- */
-package com.sun.star.wizards.web;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import com.sun.star.awt.PushButtonType;
-import com.sun.star.awt.XButton;
-import com.sun.star.awt.XControl;
-import com.sun.star.awt.XFixedText;
-import com.sun.star.awt.XTextComponent;
-import com.sun.star.lang.XMultiServiceFactory;
-import com.sun.star.ucb.AuthenticationRequest;
-import com.sun.star.ucb.InteractiveAugmentedIOException;
-import com.sun.star.ucb.InteractiveNetworkConnectException;
-import com.sun.star.ucb.InteractiveNetworkResolveNameException;
-import com.sun.star.ucb.OpenCommandArgument2;
-import com.sun.star.ucb.OpenMode;
-import com.sun.star.wizards.common.Desktop;
-import com.sun.star.wizards.common.FileAccess;
-import com.sun.star.wizards.common.HelpIds;
-import com.sun.star.wizards.common.Helper;
-import com.sun.star.wizards.common.PropertyNames;
-import com.sun.star.wizards.common.SystemDialog;
-import com.sun.star.wizards.common.UCB;
-import com.sun.star.wizards.ui.UIConsts;
-import com.sun.star.wizards.ui.UnoDialog;
-import com.sun.star.wizards.ui.UnoDialog2;
-import com.sun.star.wizards.ui.event.DataAware;
-import com.sun.star.wizards.ui.event.UnoDataAware;
-import com.sun.star.wizards.web.data.CGPublish;
-import com.sun.star.wizards.web.data.CGSettings;
-
-/**
- * This is the FTP Dialog. <br/>
- * The Dialog enables the user:
- * (*) entering FTP server and user information.
- * (*) testing the connection.
- * (*) choosing a directory on the server.
- * If a connection was established successfully, the user may
- * press OK, which will change
- * the CGPublish object propertiers according the user's input.
- * If no connection was established. the OK and Choose-Dir button are disabled.
- * See the method "disconnect()" which disables them.
- *
- * I use here the DataAware concept to automatically update
- * the members ip, username, and password (via the methods setXXX(...))
- * for details see the ui.events.DataAware classes. <br/>
- */
-public class FTPDialog extends UnoDialog2 implements UIConsts, WWHID
-{
-
- /**
- * A Constant used for the setLabel(int) method to change the
- * status-display. "unknown" is the status when the user first
- * opens the dialog, or changes the servername/username/password.
- */
- private final static int STATUS_UNKONWN = 0;
- /**
- * A Constant used for the setLabel(int) method to change the
- * status-display. (connection established)
- */
- private final static int STATUS_OK = 1;
- /**
- * A Constant used for the setLabel(int) method to change the
- * status-display.
- */
- private final static int STATUS_USER_PWD_WRONG = 2;
- /**
- * A Constant used for the setLabel(int) method to change the
- * status-display.
- */
- private final static int STATUS_SERVER_NOT_FOUND = 3;
- /**
- * A Constant used for the setLabel(int) method to change the
- * status-display.
- */
- private final static int STATUS_NO_RIGHTS = 4;
- /**
- * A Constant used for the setLabel(int) method to change the
- * status-display.
- */
- private final static int STATUS_HOST_UNREACHABLE = 5;
- /**
- * A Constant used for the setLabel(int) method to change the
- * status-display.
- */
- private final static int STATUS_CONNECTING = 6;
- /**
- * The icon url for error
- */
- private final static String ICON_ERROR = "ftperror.gif";
- /**
- * The icon url for ok (connection ok)
- */
- private final static String ICON_OK = "ftpconnected.gif";
- /**
- * The icon url for unknown - this is the status when
- * the user first opens the dialog
- */
- private final static String ICON_UNKNOWN = "ftpunknown.gif";
- /**
- * The icon url for an icon representing the "connecting" state.
- */
- private final static String ICON_CONNECTING = "ftpconnecting.gif"; //GUI Components as Class members.
- //Fixed Line
- private XControl ln1;
- private XFixedText lblFTPAddress;
- private XTextComponent txtHost;
- private XFixedText lblUsername;
- private XTextComponent txtUsername;
- private XFixedText lblPassword;
- private XTextComponent txtPassword;
- //Fixed Line
- private XControl ln2;
- private XButton btnTestConnection;
- private XControl imgStatus;
- private XFixedText lblStatus;
- //Fixed Line
- private XControl ln3;
- private XTextComponent txtDir;
- private XButton btnDir;
- private XButton btnOK;
- private XButton btnCancel;
- private XButton btnHelp;
- //Font Descriptors as Class members.
-
- //Resources Object
- private FTPDialogResources resources;
- private List<DataAware> dataAware = new ArrayList<DataAware>();
- public String username = PropertyNames.EMPTY_STRING;
- public String password = PropertyNames.EMPTY_STRING;
- /**
- * The ftp host name
- */
- public String host = PropertyNames.EMPTY_STRING;
- /**
- * The ftp directory.
- */
- private String dir = PropertyNames.EMPTY_STRING;
- /**
- * the ftp publish object which contains the
- * data for this dialog.
- */
- private CGPublish publish;
- private UCB ucb;
- /**
- * used for the status images url.
- */
- private String imagesDirectory;
-
- /**
- * constructor.
- * constructs the UI.
- * @param xmsf
- * @param p the publishert object that contains the data
- * for this dialog
- * @throws Exception
- */
- public FTPDialog(XMultiServiceFactory xmsf, CGPublish p) throws Exception
- {
- super(xmsf);
- publish = p;
-
-
- imagesDirectory = FileAccess.connectURLs(((CGSettings) (publish.root)).soTemplateDir, "../wizard/bitmap/");
-
- //Load Resources
- resources = new FTPDialogResources(xmsf);
- ucb = new UCB(xmsf);
-
- //set dialog properties...
- Helper.setUnoPropertyValues(xDialogModel,
- new String[]
- {
- PropertyNames.PROPERTY_CLOSEABLE, PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_MOVEABLE, PropertyNames.PROPERTY_NAME, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_TITLE, PropertyNames.PROPERTY_WIDTH
- },
- new Object[]
- {
- Boolean.TRUE, 160, HelpIds.getHelpIdString(HID_FTP), Boolean.TRUE, "FTPDialog", 167, 82, resources.resFTPDialog_title, 222
- });
-
- //add controls to dialog
- build();
- //make the hostname, username and password textfield data-aware.
- configure();
- //make sure we display a disconnected status.
- disconnect();
- }
-
- /**
- * Add controls to dialog.
- */
- public void build()
- {
- final String[] PROPNAMES_LABEL = new String[]
- {
- PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_NAME, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
- };
- final String[] PROPNAMES_BUTTON = new String[]
- {
- PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_NAME, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
- };
- final String[] PROPNAMES_BUTTON2 = new String[]
- {
- PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_LABEL, PropertyNames.PROPERTY_NAME, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, "PushButtonType", PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
- };
-
- ln1 = insertFixedLine("ln1",
- PROPNAMES_LABEL,
- new Object[]
- {
- INTEGERS[8], resources.resln1_value, "ln1", INTEGERS[6], INTEGERS[6], new Short((short) 0), 210
- });
- lblFTPAddress = insertLabel("lblFTPAddress",
- PROPNAMES_LABEL,
- new Object[]
- {
- INTEGERS[8], resources.reslblFTPAddress_value, "lblFTPAddress", INTEGER_12, 20, new Short((short) 1), 95
- });
- txtHost = insertTextField("txtHost", "disconnect",
- new String[]
- {
- PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_NAME, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
- },
- new Object[]
- {
- INTEGER_12, HelpIds.getHelpIdString(HID_FTP_SERVER), "txtIP", 110, 18, new Short((short) 2), 106
- });
- lblUsername = insertLabel("lblUsername",
- PROPNAMES_LABEL,
- new Object[]
- {
- INTEGERS[8], resources.reslblUsername_value, "lblUsername", INTEGER_12, 36, new Short((short) 3), 85
- });
- txtUsername = insertTextField("txtUsername", "disconnect",
- new String[]
- {
- PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_NAME, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
- },
- new Object[]
- {
- INTEGER_12, HelpIds.getHelpIdString(HID_FTP_USERNAME), "txtUsername", 110, 34, new Short((short) 4), 106
- });
- lblPassword = insertLabel("lblPassword",
- PROPNAMES_LABEL,
- new Object[]
- {
- INTEGERS[8], resources.reslblPassword_value, "lblPassword", INTEGER_12, 52, new Short((short) 5), 85
- });
- txtPassword = insertTextField("txtPassword", "disconnect",
- new String[]
- {
- "EchoChar", PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_NAME, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_TABINDEX, PropertyNames.PROPERTY_WIDTH
- },
- new Object[]
- {
- new Short((short) 42), INTEGER_12, HelpIds.getHelpIdString(HID_FTP_PASS), "txtPassword", 110, 50, new Short((short) 6), 106
- });
- ln2 = insertFixedLine("ln2",
- PROPNAMES_LABEL,
- new Object[]
- {
- INTEGERS[8], resources.resln2_value, "ln2", INTEGERS[6], 68, new Short((short) 7), 210
- });
- btnTestConnection = insertButton("btnConnect", "connect",
- PROPNAMES_BUTTON,
- new Object[]
- {
- INTEGER_14, HelpIds.getHelpIdString(HID_FTP_TEST), resources.resbtnConnect_value, "btnConnect", INTEGER_12, 80, new Short((short) 8), INTEGER_50
- });
-
- imgStatus = insertImage("imgStatus",
- new String[]
- {
- PropertyNames.PROPERTY_BORDER, PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, "ScaleImage", "Tabstop", PropertyNames.PROPERTY_WIDTH
- },
- new Object[]
- {
- new Short((short) 0), INTEGER_14, 68, 80, Boolean.FALSE, Boolean.FALSE, INTEGER_14
- });
-
- lblStatus = insertLabel("lblStatus",
- PROPNAMES_LABEL,
- new Object[]
- {
- INTEGERS[8], resources.resFTPDisconnected, "lblStatus", 86, 82, new Short((short) 9), 99
- });
-
- ln3 = insertFixedLine("ln3",
- PROPNAMES_LABEL,
- new Object[]
- {
- INTEGERS[8], resources.resln3_value, "ln3", INTEGERS[6], 100, new Short((short) 10), 210
- });
-
- txtDir = insertTextField("txtDir",
- null, new String[]
- {
- PropertyNames.PROPERTY_ENABLED, PropertyNames.PROPERTY_HEIGHT, PropertyNames.PROPERTY_HELPURL, PropertyNames.PROPERTY_NAME, PropertyNames.PROPERTY_POSITION_X, PropertyNames.PROPERTY_POSITION_Y, PropertyNames.PROPERTY_TABINDEX, "Text", PropertyNames.PROPERTY_WIDTH
- },
- new Object[]
- {
- Boolean.FALSE, INTEGER_12, HelpIds.getHelpIdString(HID_FTP_TXT_PATH), "txtDir", INTEGER_12, 113, new Short((short) 11), resources.restxtDir_value, 184
- });
- btnDir = insertButton("btnDir", "chooseDirectory",
- PROPNAMES_BUTTON,
- new Object[]
- {
- INTEGER_14, HelpIds.getHelpIdString(HID_FTP_BTN_PATH), resources.resbtnDir_value, "btnDir", 199, 112, new Short((short) 12), INTEGER_16
- });
-
- btnOK = insertButton("btnOK", null,
- PROPNAMES_BUTTON2,
- new Object[]
- {
- INTEGER_14, HelpIds.getHelpIdString(HID_FTP_OK), resources.resbtnOK_value, "btnOK", 165, 142, new Short((short) PushButtonType.OK_value), new Short((short) 13), INTEGER_50
- });
-
- btnCancel = insertButton("btnCancel",
- null, PROPNAMES_BUTTON2,
- new Object[]
- {
- INTEGER_14, HelpIds.getHelpIdString(HID_FTP_CANCEL), resources.resbtnCancel_value, "btnCancel", 113, 142, new Short((short) PushButtonType.CANCEL_value), new Short((short) 14), INTEGER_50
- });
-
- btnHelp = insertButton("btnHelp", null,
- PROPNAMES_BUTTON2,
- new Object[]
- {
- INTEGER_14, PropertyNames.EMPTY_STRING, resources.resbtnHelp_value, "btnHelp", 57, 142, new Short((short) PushButtonType.HELP_value), new Short((short) 15), INTEGER_50
- });
-
- }
-
- /**
- * Make hostname, username and password text fields data aware.
- */
- private void configure()
- {
- dataAware.add(UnoDataAware.attachEditControl(this, "host", txtHost, null, true));
- dataAware.add(UnoDataAware.attachEditControl(this, "username", txtUsername, null, true));
- dataAware.add(UnoDataAware.attachEditControl(this, "password", txtPassword, null, true));
- }
-
- /**
- * Shows the dialog.
- * If the user clicks ok, changes the given CGPublish properties to the
- * user input.
- * @param parent a dialog to center this dialog to.
- * @return 0 for cancel, 1 for ok.
- * @throws Exception - well, if something goes wrong...
- */
- public short execute(UnoDialog parent) throws Exception
- {
- host = extractHost(publish.cp_URL);
- username = publish.cp_Username == null ? PropertyNames.EMPTY_STRING : publish.cp_Username;
- password = publish.password == null ? PropertyNames.EMPTY_STRING : publish.password;
- dir = extractDir(publish.cp_URL);
- setLabel(STATUS_UNKONWN);
-
- enableTestButton();
- updateUI();
- short result = executeDialog(parent);
- //change the CGPublish properties
- if (result == 1)
- {
- publish.cp_URL = "ftp://" + host() + getDir();
- publish.cp_Username = username;
- publish.password = password;
- }
-
- return result;
- }
-
- /**
- * updates the hostname, username, password and
- * directory text fields.
- * is called uppon initialization.
- */
- private void updateUI()
- {
- DataAware.updateUI(dataAware);
- setDir(dir);
- }
-
- /**
- * extract the hostname out of the url used by the
- * publisher. This url does not include the username:password string.
- * @param ftpUrl
- * @return
- */
- private String extractHost(String ftpUrl)
- {
- if (ftpUrl == null || ftpUrl.length() < 6)
- {
- return PropertyNames.EMPTY_STRING;
- }
- String url = ftpUrl.substring(6);
- int i = url.indexOf("/");
- if (i == -1)
- {
- return url;
- }
- else
- {
- return url.substring(0, i);
- }
- }
-
- /**
- * used to get data from the CGPublish object.
- * @param ftpUrl
- * @return the directory portion of the ftp-url
- */
- private String extractDir(String ftpUrl)
- {
- if (ftpUrl == null || ftpUrl.length() < 6)
- {
- return "/";
- }
- String url = ftpUrl.substring(6);
- int i = url.indexOf("/");
- if (i == -1)
- {
- return "/";
- }
- else
- {
- return url.substring(i);
- }
- }
-
- /**
- * enables/disables the "test" button
- * according to the status of the hostname, username, password text fields.
- * If one of these fields is empty, the button is disabled.
- */
- private void enableTestButton()
- {
- setEnabled(btnTestConnection, !(isEmpty(host) || isEmpty(username) || isEmpty(password)));
-
- }
-
- /**
- * @param s
- * @return true if the string is null or PropertyNames.EMPTY_STRING.
- */
- private final boolean isEmpty(String s)
- {
- return (s == null) || (s.equals(PropertyNames.EMPTY_STRING));
- }
-
- /**
- * @return the ftp url with username and password,
- * but without the directory portion.
- */
- public String getAcountUrl()
- {
- return "ftp://" + username + ":" + password + "@" + host();
- }
-
- /**
- * return the host name without the "ftp://"
- * @return
- */
- private String host()
- {
- return host(host);
- }
-
- private static String host(String s)
- {
- return (s.startsWith("ftp://") ? s.substring(6) : s);
- }
-
- /**
- * @return the full ftp url including username, password and directory portion.
- */
- private String getFullUrl()
- {
- return getAcountUrl() + dir;
- }
-
- /**
- * First I try to connect to the full url, including directory.
- * If an InteractiveAugmentedIOException accures, I try again,
- * this time without the dir spec. If this works, I change the dir
- * to "/", if not I say to the user its his problem...
- *
- */
- public void connect()
- {
- setEnabled(btnTestConnection, false);
- setLabel(STATUS_CONNECTING);
- boolean success = false;
- try
- {
- connect(getFullUrl());
- success = true;
- }
- catch (InteractiveAugmentedIOException iaioex)
- {
- try
- {
- connect(getAcountUrl());
- setDir("/");
- success = true;
- }
- catch (Exception ex)
- {
- setLabel(STATUS_NO_RIGHTS);
- }
- }
- catch (InteractiveNetworkResolveNameException inrne)
- {
- setLabel(STATUS_SERVER_NOT_FOUND);
- }
- catch (AuthenticationRequest ar)
- {
- setLabel(STATUS_USER_PWD_WRONG);
- }
- catch (InteractiveNetworkConnectException incx)
- {
- setLabel(STATUS_HOST_UNREACHABLE);
- }
- catch (Exception ex)
- {
- setLabel(-1);
- ex.printStackTrace();
- }
-
-
- if (success)
- {
- setLabel(STATUS_OK);
- setEnabled(btnDir, true);
- setEnabled(btnOK, true);
- }
-
- setEnabled(btnTestConnection, true);
-
- }
-
- /**
- * To try the conenction I do some actions that
- * seem logical to me: <br/>
- * I get a ucb content.
- * I list the files in this content.
- * I call the ucb "open" command.
- * I get the PropertyNames.PROPERTY_TITLE property of this content.
- * @param acountUrl
- * @throws Exception
- */
- private void connect(String acountUrl) throws Exception
- {
- Object content = ucb.getContent(acountUrl);
-
- //list files in the content.
- List<String> l = ucb.listFiles(acountUrl, null);
-
- //open the content
- OpenCommandArgument2 aArg = new OpenCommandArgument2();
- aArg.Mode = OpenMode.FOLDERS; // FOLDER, DOCUMENTS -> simple filter
- aArg.Priority = 32768; // Ignored by most implementations
-
- ucb.executeCommand(content, "open", aArg);
-
- //get the title property of the content.
- Object obj = ucb.getContentProperty(content, PropertyNames.PROPERTY_TITLE, String.class);
-
- }
-
- /**
- * changes the ftp subdirectory, in both
- * the UI and the data.
- * @param s the directory.
- */
- public void setDir(String s)
- {
- dir = s;
- Helper.setUnoPropertyValue(getModel(txtDir), "Text", dir);
- }
-
- /**
- * @return the ftp subdirecrtory.
- */
- public String getDir()
- {
- return dir;
- }
-
- /**
- * changes the status label to disconnected status, and
- * disables the ok and choose-dir buttons.
- * This method is called also when the hostname, username
- * and passwordtext fields change.
- */
- public void disconnect()
- {
- enableTestButton();
- setEnabled(btnOK, false);
- setEnabled(btnDir, false);
- setLabel(STATUS_UNKONWN);
- }
-
- /**
- * used for debuging.
- * @param args
- */
- public static void main(String args[])
- {
- String ConnectStr = "uno:socket,host=localhost,port=8100;urp,negotiate=0,forcesynchronous=1;StarOffice.ServiceManager";
- try
- {
- XMultiServiceFactory xLocMSF = Desktop.connect(ConnectStr);
- CGPublish p = new CGPublish();
- p.cp_URL = "ftp://tv-1/Folder";
- p.cp_Username = "ronftp";
- p.password = "ronftp";
-
- FTPDialog dialog = new FTPDialog(xLocMSF, p);
- dialog.execute(null);
- }
- catch (Exception exception)
- {
- exception.printStackTrace();
- }
- }
-
- /**
- * changes the status label and icon, according to the
- * given status
- * @param status one opf the private status-constants.
- * if this param is not one of them, an "unknown error" status is displayed.
- */
- private void setLabel(int status)
- {
- switch (status)
- {
- //not connected yet
- case STATUS_UNKONWN:
- setLabel(resources.resFTPDisconnected, ICON_UNKNOWN);
- break;
- //connected!
- case STATUS_OK:
- setLabel(resources.resFTPConnected, ICON_OK);
- break;
- case STATUS_USER_PWD_WRONG:
- setLabel(resources.resFTPUserPwdWrong, ICON_ERROR);
- break;
- //problem resolving server name
- case STATUS_SERVER_NOT_FOUND:
- setLabel(resources.resFTPServerNotFound, ICON_ERROR);
- break;
- //rights problem
- case STATUS_NO_RIGHTS:
- setLabel(resources.resFTPRights, ICON_ERROR);
- break;
- //host unreachable (firewall?)
- case STATUS_HOST_UNREACHABLE:
- setLabel(resources.resFTPHostUnreachable, ICON_ERROR);
- break;
- case STATUS_CONNECTING:
- setLabel(resources.resConnecting, ICON_CONNECTING);
- break;
- default:
- setLabel(resources.resFTPUnknownError, ICON_ERROR);
- }
- }
-
- /**
- * changes the text of the status label and
- * (TODO) the status image.
- * @param label
- * @param image
- */
- private void setLabel(String label, String image)
- {
- Helper.setUnoPropertyValue(getModel(lblStatus), PropertyNames.PROPERTY_LABEL, label);
- Helper.setUnoPropertyValue(getModel(imgStatus), PropertyNames.PROPERTY_IMAGEURL, imageUrl(image));
- }
-
- private String imageUrl(String s)
- {
- return imagesDirectory + s;
- }
-
- /**
- * called when the user clicks
- * the choose-dir button. ("...")
- * Opens the pickFolder dialog.
- * checks if the returned folder is an ftp folder.
- * sets the textbox and the data to the new selected dir.
- */
- public void chooseDirectory()
- {
- SystemDialog sd = SystemDialog.createOfficeFolderDialog(xMSF);
- String newUrl = sd.callFolderDialog(resources.resFTPDirectory, PropertyNames.EMPTY_STRING, getFullUrl());
- if (newUrl != null)
- {
- /* if the user chose a local directory,
- * sI do not accept it.
- */
- if (newUrl.startsWith("ftp://"))
- {
- setDir(extractDir(newUrl));
- }
- else
- {
- AbstractErrorHandler.showMessage(xMSF, xControl.getPeer(), resources.resIllegalFolder, ErrorHandler.ERROR_PROCESS_FATAL);
- }
- }
- }
-
- /**
- * practical to have such a method...
- * @param p the publisher obejct that contains the ftp connection info.
- * @return the full ftp url with username password and everything one needs.
- */
- public static final String getFullURL(CGPublish p)
- {
- return "ftp://" + p.cp_Username + ":" + p.password + "@" + host(p.cp_URL);
- }
-}