/** * * 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 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.apache.airavata.xbaya.ui.dialogs.registry; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.net.URL; import javax.swing.*; import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils; import org.apache.airavata.registry.core.experiment.catalog.ResourceType; import org.apache.airavata.registry.core.experiment.catalog.resources.GatewayResource; import org.apache.airavata.registry.core.experiment.catalog.resources.UserResource; import org.apache.airavata.registry.core.experiment.catalog.resources.WorkerResource; import org.apache.airavata.xbaya.XBayaEngine; import org.apache.airavata.xbaya.ui.dialogs.XBayaDialog; import org.apache.airavata.xbaya.ui.widgets.GridPanel; import org.apache.airavata.xbaya.ui.widgets.XBayaLabel; import org.apache.airavata.xbaya.ui.widgets.XBayaTextField; public class NewRegistryUserDialog { private XBayaEngine engine; private XBayaDialog dialog; // private XBayaTextField urlTextField; private XBayaTextField usernameTextField; private JPasswordField passwordTextField; private String gatewayName = "default"; private String username; private URL url; private String password; private JPasswordField confirmPasswordTextField; private JButton okButton; private boolean userCreated = false; // public static final String GATEWAY_ID = "default.registry.gateway"; public NewRegistryUserDialog(XBayaEngine engine) { this(engine, null, null); } public NewRegistryUserDialog(XBayaEngine engine, URL url) { this(engine, url, null); } public NewRegistryUserDialog(XBayaEngine engine, String username) { this(engine, null, username); } /** * @param engine */ public NewRegistryUserDialog(XBayaEngine engine, URL url, String username) { this.engine = engine; setUrl(url); setUsername(username); initGUI(); } /** * Displays the dialog. */ public void show() { this.dialog.show(); } private void hide() { // setUserCreated(false); this.dialog.hide(); } private void setData() { // updateURL(); updateUsername(); updatePassword(); } private void ok() { setData(); String status = updateStatus(); if (status == null) { try { // Properties properties = Utils.loadProperties(); GatewayResource gatewayResource = (GatewayResource) ExpCatResourceUtils.getGateway(getGatewayName()); UserResource userResource = (UserResource) gatewayResource.create(ResourceType.USER); userResource.setUserName(getUsername()); userResource.setPassword(getPassword()); userResource.save(); WorkerResource workerResource = (WorkerResource) gatewayResource.create(ResourceType.GATEWAY_WORKER); workerResource.setUser(userResource.getUserName()); workerResource.save(); setUserCreated(true); // JCRComponentRegistry registry = new JCRComponentRegistry(getUsername(),getPassword()); } catch (Exception e) { engine.getGUI().getErrorWindow().error(e.getMessage()); } } else { engine.getGUI().getErrorWindow().error(status); } close(); } private String updateStatus() { String msg = null; // if (getUrl() == null) { // msg = "The url cannot be empty"; // } else if (getUsername() == null || getUsername().equals("")) { msg = "Username cannot be empty"; } else if (getPassword() == null || getPassword().equals("")) { msg = "Passwords must match or cannot be empty"; } // okButton.setEnabled(msg==null); return msg; } /** * Initializes the GUI. */ private void initGUI() { // this.urlTextField = new XBayaTextField(); this.usernameTextField = new XBayaTextField(); this.passwordTextField = new JPasswordField(); this.confirmPasswordTextField = new JPasswordField(); // XBayaLabel urlLabel = new XBayaLabel("URL", this.urlTextField); XBayaLabel userLabel = new XBayaLabel("Username", this.usernameTextField); XBayaLabel passLabel = new XBayaLabel("Password", this.passwordTextField); XBayaLabel confirmPassLabel = new XBayaLabel("Confirm Password", this.confirmPasswordTextField); GridPanel infoPanel = new GridPanel(); // infoPanel.add(urlLabel); // infoPanel.add(this.urlTextField); infoPanel.add(userLabel); infoPanel.add(this.usernameTextField); infoPanel.add(passLabel); infoPanel.add(this.passwordTextField); infoPanel.add(confirmPassLabel); infoPanel.add(this.confirmPasswordTextField); // infoPanel.layout(4, 2, GridPanel.WEIGHT_NONE, 1); infoPanel.layout(3, 2, GridPanel.WEIGHT_NONE, 1); // urlTextField.getSwingComponent().addActionListener(new ActionListener() { // public void actionPerformed(ActionEvent event) { // updateURL(); // updateStatus(); // } // // }); usernameTextField.getSwingComponent().addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { updateUsername(); updateStatus(); } }); passwordTextField.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { updatePassword(); updateStatus(); } }); confirmPasswordTextField.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent event) { updatePassword(); updateStatus(); } }); okButton = new JButton("OK"); okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ok(); } }); JButton cancelButton = new JButton("Cancel"); cancelButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { hide(); } }); JPanel buttonPanel = new JPanel(); buttonPanel.add(okButton); buttonPanel.add(cancelButton); this.dialog = new XBayaDialog(this.engine.getGUI(), "Registry New User", infoPanel, buttonPanel); this.dialog.setDefaultButton(okButton); updateControlData(); } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public void updateControlData() { if (usernameTextField != null && getUsername() != null) { usernameTextField.setText(getUsername()); } // if (urlTextField != null && getUrl() != null) { // urlTextField.setText(getUrl().toString()); // } } public URL getUrl() { return url; } public void setUrl(URL url) { this.url = url; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } // private void updateURL() { // URL specifiedURL = null; // try { // specifiedURL = new URL(urlTextField.getText()); // } catch (MalformedURLException e) { // // erroneious url, ignore it // } // setUrl(specifiedURL); // } private void updateUsername() { setUsername(usernameTextField.getText()); } private void updatePassword() { String password = null; String ptext = new String(passwordTextField.getPassword()); String ctext = new String(confirmPasswordTextField.getPassword()); if (ptext.equals(ctext)) { password = ptext; } setPassword(password); } public boolean isUserCreated() { return userCreated; } public void setUserCreated(boolean userCreated) { this.userCreated = userCreated; } public String getGatewayName() { return gatewayName; } public void setGatewayName(String gatewayName) { this.gatewayName = gatewayName; } public void close() { hide(); } }