diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar b/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar index 25e153d5..b5ab55a2 100644 Binary files a/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar and b/ diy-layout-creator --username bancika@gmail.com/diylc-core/library/main.jar differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/model/ProjectEntity.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/model/ProjectEntity.java similarity index 94% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/model/ProjectEntity.java rename to diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/model/ProjectEntity.java index 7d7a97ee..a1c80f9b 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/model/ProjectEntity.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/model/ProjectEntity.java @@ -1,4 +1,4 @@ -package org.diylc.swing.plugins.cloud.model; +package org.diylc.plugins.cloud.model; import java.io.Serializable; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/model/ServiceAPI.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/model/ServiceAPI.java similarity index 86% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/model/ServiceAPI.java rename to diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/model/ServiceAPI.java index dae76466..026bba30 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/model/ServiceAPI.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/model/ServiceAPI.java @@ -1,4 +1,4 @@ -package org.diylc.swing.plugins.cloud.model; +package org.diylc.plugins.cloud.model; import java.io.File; import java.util.List; @@ -12,9 +12,9 @@ import com.diyfever.httpproxy.ParamName; * */ public interface ServiceAPI { - + public static final String URL_KEY = "serviceUrl"; - + /** * Creates a user with the specified details. * @@ -62,6 +62,19 @@ public interface ServiceAPI { @ParamName("password") String password, @ParamName("machineId") String machineId); + /*** + * Retrieves current user's details. + * + * @param username + * @param password + * @param machineId + * @return string with an error message if it fails, or an instance of + * {@link UserEntity} if it succeeds. + */ + Object getUserDetails(@ParamName("username") String username, + @ParamName("token") String token, + @ParamName("machineId") String machineId); + /*** * Tries to authenticate with the token that was previously created by * calling login() function. @@ -127,7 +140,7 @@ public interface ServiceAPI { * @return a {@link List} of available categories. */ List getCategories(); - + /** * @return a {@link List} of available sortings. */ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/model/UserEntity.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/model/UserEntity.java similarity index 56% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/model/UserEntity.java rename to diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/model/UserEntity.java index 5987870f..7826ea4e 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/model/UserEntity.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/model/UserEntity.java @@ -1,4 +1,4 @@ -package org.diylc.swing.plugins.cloud.model; +package org.diylc.plugins.cloud.model; import java.io.Serializable; @@ -6,48 +6,27 @@ public class UserEntity implements Serializable { private static final long serialVersionUID = 1L; - private int id; - private String userName; - private String password; + private String username; private String email; private String website; private String bio; - public UserEntity(int id, String userName, String password, String email, - String website, String bio) { + public UserEntity(String userName, String email, String website, String bio) { super(); - this.id = id; - this.userName = userName; - this.password = password; + this.username = username; this.email = email; this.website = website; this.bio = bio; } - public int getId() { - return id; + public String getUsername() { + return username; } - - public void setId(int id) { - this.id = id; + + public void setUsername(String username) { + this.username = username; } - - public String getUserName() { - return userName; - } - - public void setUserName(String userName) { - this.userName = userName; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - + public String getEmail() { return email; } @@ -78,11 +57,8 @@ public class UserEntity implements Serializable { int result = 1; result = prime * result + ((bio == null) ? 0 : bio.hashCode()); result = prime * result + ((email == null) ? 0 : email.hashCode()); - result = prime * result + id; result = prime * result - + ((password == null) ? 0 : password.hashCode()); - result = prime * result - + ((userName == null) ? 0 : userName.hashCode()); + + ((username == null) ? 0 : username.hashCode()); result = prime * result + ((website == null) ? 0 : website.hashCode()); return result; } @@ -106,17 +82,10 @@ public class UserEntity implements Serializable { return false; } else if (!email.equals(other.email)) return false; - if (id != other.id) - return false; - if (password == null) { - if (other.password != null) + if (username == null) { + if (other.username != null) return false; - } else if (!password.equals(other.password)) - return false; - if (userName == null) { - if (other.userName != null) - return false; - } else if (!userName.equals(other.userName)) + } else if (!username.equals(other.username)) return false; if (website == null) { if (other.website != null) @@ -128,7 +97,7 @@ public class UserEntity implements Serializable { @Override public String toString() { - return "UserEntity [userName=" + userName + "]"; + return "UserEntity [userName=" + username + "]"; } } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/CloudException.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudException.java similarity index 77% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/CloudException.java rename to diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudException.java index d05e8ae1..1955e7cb 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/CloudException.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudException.java @@ -1,4 +1,4 @@ -package org.diylc.swing.plugins.cloud.presenter; +package org.diylc.plugins.cloud.presenter; public class CloudException extends Exception { diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/CloudListener.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudListener.java similarity index 61% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/CloudListener.java rename to diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudListener.java index d41593ad..5619d3d1 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/CloudListener.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudListener.java @@ -1,4 +1,4 @@ -package org.diylc.swing.plugins.cloud.presenter; +package org.diylc.plugins.cloud.presenter; public interface CloudListener { diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/CloudPresenter.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudPresenter.java similarity index 83% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/CloudPresenter.java rename to diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudPresenter.java index cdd43d31..88b880d6 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/CloudPresenter.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/CloudPresenter.java @@ -1,17 +1,15 @@ -package org.diylc.swing.plugins.cloud.presenter; +package org.diylc.plugins.cloud.presenter; -import java.awt.image.RenderedImage; import java.io.File; import java.io.IOException; import java.net.InetAddress; import java.net.NetworkInterface; import java.util.List; -import javax.imageio.ImageIO; - import org.apache.log4j.Logger; import org.diylc.appframework.miscutils.ConfigurationManager; -import org.diylc.swing.plugins.cloud.model.ServiceAPI; +import org.diylc.plugins.cloud.model.ServiceAPI; +import org.diylc.plugins.cloud.model.UserEntity; import com.diyfever.httpproxy.PhpFlatProxy; import com.diyfever.httpproxy.ProxyFactory; @@ -160,6 +158,27 @@ public class CloudPresenter { } + public UserEntity getUserDetails() throws CloudException { + String username = ConfigurationManager.getInstance().readString( + USERNAME_KEY, null); + String token = ConfigurationManager.getInstance().readString(TOKEN_KEY, + null); + + Object res; + try { + res = service.getUserDetails(username, token, getMachineId()); + } catch (Exception e) { + throw new CloudException(e); + } + if (res instanceof String) + throw new CloudException(res.toString()); + if (res instanceof UserEntity) + return (UserEntity) res; + throw new CloudException( + "Unexpected server response received for category list: " + + res.getClass().getName()); + } + private String getMachineId() { if (machineId == null) { try { diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/NotConnectedException.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/NotConnectedException.java similarity index 66% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/NotConnectedException.java rename to diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/NotConnectedException.java index 146d746f..f811511a 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/NotConnectedException.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/NotConnectedException.java @@ -1,4 +1,4 @@ -package org.diylc.swing.plugins.cloud.presenter; +package org.diylc.plugins.cloud.presenter; public class NotConnectedException extends Exception { diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/NotExistsException.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/NotExistsException.java similarity index 74% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/NotExistsException.java rename to diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/NotExistsException.java index 818414a8..7417ddd9 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/NotExistsException.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/NotExistsException.java @@ -1,4 +1,4 @@ -package org.diylc.swing.plugins.cloud.presenter; +package org.diylc.plugins.cloud.presenter; public class NotExistsException extends Exception { diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/NotLoggedInException.java b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/NotLoggedInException.java similarity index 66% rename from diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/NotLoggedInException.java rename to diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/NotLoggedInException.java index 60fd166c..4ee0a734 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/swing/plugins/cloud/presenter/NotLoggedInException.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-core/src/org/diylc/plugins/cloud/presenter/NotLoggedInException.java @@ -1,4 +1,4 @@ -package org.diylc.swing.plugins.cloud.presenter; +package org.diylc.plugins.cloud.presenter; public class NotLoggedInException extends Exception { diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.gitignore b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.gitignore index 9b0ab937..c35c3382 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.gitignore +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/.gitignore @@ -2,5 +2,7 @@ /.apt_generated /log/ /build/ +/library/ +/lib/diylc-core.jar autoSave.diy config.xml \ No newline at end of file diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java index f7200d2e..aaee0234 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/IconLoader.java @@ -41,7 +41,8 @@ public enum IconLoader { "briefcase_into.png"), RotateCW("rotate_cw.png"), RotateCCW( "rotate_ccw.png"), ElementInto("element_into.png"), Arrow( "arrow.png"), Cloud("cloud.png"), CloudUp("cloud_up.png"), CloudGear( - "cloud_gear.png"), IdCardEdit("id_card_edit.png"); + "cloud_gear.png"), IdCardEdit("id_card_edit.png"), KeyEdit( + "key_edit.png"); protected String name; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/key_edit.png b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/key_edit.png new file mode 100644 index 00000000..8e96508c Binary files /dev/null and b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/images/key_edit.png differ diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java index c14e023b..1a0d608d 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/gui/DialogFactory.java @@ -11,12 +11,12 @@ import javax.swing.filechooser.FileFilter; import org.diylc.appframework.miscutils.ConfigurationManager; import org.diylc.common.IPlugInPort; import org.diylc.common.PropertyWrapper; +import org.diylc.plugins.cloud.model.UserEntity; +import org.diylc.plugins.cloud.presenter.CloudPresenter; import org.diylc.swing.gui.components.OverwritePromptFileChooser; import org.diylc.swing.gui.editor.PropertyEditorDialog; -import org.diylc.swing.plugins.cloud.model.UserEntity; -import org.diylc.swing.plugins.cloud.presenter.CloudPresenter; import org.diylc.swing.plugins.cloud.view.LoginDialog; -import org.diylc.swing.plugins.cloud.view.NewUserDialog; +import org.diylc.swing.plugins.cloud.view.UserEditDialog; import org.diylc.swing.plugins.cloud.view.UploadDialog; import org.diylc.swing.plugins.file.BomDialog; import org.diylc.swingframework.AboutDialog; @@ -141,8 +141,8 @@ public class DialogFactory { return dialog; } - public NewUserDialog createNewUserDialog(UserEntity existingUser) { - NewUserDialog dialog = new NewUserDialog(mainFrame, existingUser); + public UserEditDialog createUserEditDialog(UserEntity existingUser) { + UserEditDialog dialog = new UserEditDialog(mainFrame, existingUser); return dialog; } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/CloudPlugIn.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/CloudPlugIn.java index f0bc0394..a9720d4d 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/CloudPlugIn.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/CloudPlugIn.java @@ -14,15 +14,16 @@ import org.diylc.common.IPlugInPort; import org.diylc.common.ITask; import org.diylc.core.IView; import org.diylc.images.IconLoader; +import org.diylc.plugins.cloud.model.UserEntity; +import org.diylc.plugins.cloud.presenter.CloudException; +import org.diylc.plugins.cloud.presenter.CloudListener; +import org.diylc.plugins.cloud.presenter.CloudPresenter; import org.diylc.presenter.Presenter; import org.diylc.swing.ISwingUI; import org.diylc.swing.gui.DialogFactory; import org.diylc.swing.gui.DummyView; -import org.diylc.swing.plugins.cloud.presenter.CloudException; -import org.diylc.swing.plugins.cloud.presenter.CloudListener; -import org.diylc.swing.plugins.cloud.presenter.CloudPresenter; import org.diylc.swing.plugins.cloud.view.LoginDialog; -import org.diylc.swing.plugins.cloud.view.NewUserDialog; +import org.diylc.swing.plugins.cloud.view.UserEditDialog; import org.diylc.swing.plugins.cloud.view.UploadDialog; import org.diylc.swing.plugins.file.FileFilterEnum; import org.diylc.swingframework.ButtonDialog; @@ -47,6 +48,7 @@ public class CloudPlugIn implements IPlugIn, CloudListener { private ManageAccountAction manageAccountAction; private UploadAction uploadAction; + private ChangePasswordAction changePasswordAction; private ManageProjectsAction manageProjectsAction; public CloudPlugIn(ISwingUI swingUI) { @@ -64,6 +66,7 @@ public class CloudPlugIn implements IPlugIn, CloudListener { swingUI.injectMenuAction(getManageProjectsAction(), ONLINE_TITLE); swingUI.injectMenuAction(null, ONLINE_TITLE); swingUI.injectMenuAction(getManageAccountAction(), ONLINE_TITLE); + swingUI.injectMenuAction(getChangePasswordAction(), ONLINE_TITLE); swingUI.injectMenuAction(getLogOutAction(), ONLINE_TITLE); // default state @@ -146,6 +149,14 @@ public class CloudPlugIn implements IPlugIn, CloudListener { } return uploadAction; } + + public ChangePasswordAction getChangePasswordAction() { + if (changePasswordAction == null) + { + changePasswordAction = new ChangePasswordAction(); + } + return changePasswordAction; + } public ManageProjectsAction getManageProjectsAction() { if (manageProjectsAction == null) { @@ -247,8 +258,8 @@ public class CloudPlugIn implements IPlugIn, CloudListener { @Override public void actionPerformed(ActionEvent e) { - NewUserDialog dialog = DialogFactory.getInstance() - .createNewUserDialog(null); + UserEditDialog dialog = DialogFactory.getInstance() + .createUserEditDialog(null); dialog.setVisible(true); } } @@ -265,9 +276,63 @@ public class CloudPlugIn implements IPlugIn, CloudListener { @Override public void actionPerformed(ActionEvent e) { - NewUserDialog dialog = DialogFactory.getInstance() - .createNewUserDialog(null); - dialog.setVisible(true); + swingUI.executeBackgroundTask(new ITask() { + + @Override + public UserEntity doInBackground() throws Exception { + return cloudPresenter.getUserDetails(); + } + + @Override + public void failed(Exception e) { + swingUI.showMessage( + "Failed to retreive user details from the server.", + "Cloud Error", IView.ERROR_MESSAGE); + } + + @Override + public void complete(UserEntity result) { + UserEditDialog dialog = DialogFactory.getInstance() + .createUserEditDialog(result); + dialog.setVisible(true); + } + }); + } + } + + class ChangePasswordAction extends AbstractAction { + + private static final long serialVersionUID = 1L; + + public ChangePasswordAction() { + super(); + putValue(AbstractAction.NAME, "Change Password"); + putValue(AbstractAction.SMALL_ICON, IconLoader.KeyEdit.getIcon()); + } + + @Override + public void actionPerformed(ActionEvent e) { + swingUI.executeBackgroundTask(new ITask() { + + @Override + public UserEntity doInBackground() throws Exception { + return cloudPresenter.getUserDetails(); + } + + @Override + public void failed(Exception e) { + swingUI.showMessage( + "Failed to retreive user details from the server.", + "Cloud Error", IView.ERROR_MESSAGE); + } + + @Override + public void complete(UserEntity result) { + UserEditDialog dialog = DialogFactory.getInstance() + .createUserEditDialog(result); + dialog.setVisible(true); + } + }); } } diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/UploadDialog.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/UploadDialog.java index 9b911026..958ff6a5 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/UploadDialog.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/UploadDialog.java @@ -26,8 +26,8 @@ import javax.swing.event.ChangeListener; import org.diylc.common.DrawOption; import org.diylc.common.IPlugInPort; -import org.diylc.swing.plugins.cloud.presenter.CloudException; -import org.diylc.swing.plugins.cloud.presenter.CloudPresenter; +import org.diylc.plugins.cloud.presenter.CloudException; +import org.diylc.plugins.cloud.presenter.CloudPresenter; import org.diylc.swingframework.ButtonDialog; public class UploadDialog extends ButtonDialog { @@ -87,43 +87,38 @@ public class UploadDialog extends ButtonDialog { gbc.gridheight = 1; gbc.gridx = 1; gbc.weightx = 0; + gbc.insets = new Insets(4, 2, 2, 2); gbc.fill = GridBagConstraints.HORIZONTAL; mainPanel.add(new JLabel("Project Name: "), gbc); + + gbc.gridy = 1; + mainPanel.add(new JLabel("Category:"), gbc); + + gbc.gridy = 2; + mainPanel.add(new JLabel("Description: "), gbc); + + gbc.gridy = 3; + mainPanel.add(new JLabel("Keywords: "), gbc); gbc.gridx = 2; + gbc.gridy = 0; gbc.weightx = 1; + gbc.insets = new Insets(2, 2, 2, 2); mainPanel.add(getNameField(), gbc); - gbc.gridx = 1; gbc.gridy = 1; - gbc.weightx = 0; - mainPanel.add(new JLabel("Category:"), gbc); - - gbc.gridx = 2; - gbc.weightx = 1; mainPanel.add(getCategoryBox(), gbc); - gbc.gridx = 1; gbc.gridy = 2; - gbc.weightx = 0; - - mainPanel.add(new JLabel("Description: "), gbc); - - gbc.gridx = 2; gbc.weightx = 1; gbc.weighty = 1; gbc.fill = GridBagConstraints.BOTH; mainPanel.add(getDescriptionArea(), gbc); - - gbc.gridx = 1; + gbc.gridy = 3; - gbc.weightx = 0; - gbc.weighty = 0; - gbc.fill = GridBagConstraints.HORIZONTAL; - mainPanel.add(new JLabel("Keywords: "), gbc); - - gbc.gridx = 2; + gbc.weighty = 0; gbc.weightx = 1; + gbc.fill = GridBagConstraints.HORIZONTAL; mainPanel.add(getKeywordsField(), gbc); gbc.gridx = 0; diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/NewUserDialog.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/UserEditDialog.java similarity index 82% rename from diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/NewUserDialog.java rename to diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/UserEditDialog.java index f2ddeea2..a7293f9e 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/NewUserDialog.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/src/org/diylc/swing/plugins/cloud/view/UserEditDialog.java @@ -17,12 +17,12 @@ import javax.swing.JTextField; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; -import org.diylc.swing.plugins.cloud.model.UserEntity; +import org.diylc.plugins.cloud.model.UserEntity; import org.diylc.swingframework.ButtonDialog; -public class NewUserDialog extends ButtonDialog { +public class UserEditDialog extends ButtonDialog { - private static final long serialVersionUID = 1L; + private static final long serialVersionUID = 1L; private JPanel mainPanel; @@ -41,13 +41,15 @@ public class NewUserDialog extends ButtonDialog { private UserEntity existingEntity; - public NewUserDialog(JFrame owner, UserEntity existingEntity) { - super(owner, "New Account", new String[] { OK, CANCEL }); + public UserEditDialog(JFrame owner, UserEntity existingEntity) { + super(owner, existingEntity == null ? "New Account" : "Manage Account", + new String[] { OK, CANCEL }); + + this.existingEntity = existingEntity; + setMinimumSize(new Dimension(240, 32)); layoutGui(); - refreshState(); - userNameField.setText(System.getProperty("user.name")); - this.existingEntity = existingEntity; + refreshState(); } public String getUserName() { @@ -77,20 +79,22 @@ public class NewUserDialog extends ButtonDialog { mainPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); GridBagConstraints gbc = new GridBagConstraints(); - gbc.anchor = GridBagConstraints.LINE_START; + gbc.anchor = GridBagConstraints.NORTHWEST; gbc.fill = GridBagConstraints.NONE; - gbc.insets = new Insets(2, 2, 2, 2); + gbc.insets = new Insets(4, 2, 2, 2); gbc.gridx = 0; gbc.gridy = 0; mainPanel.add(new JLabel("User Name:"), gbc); - gbc.gridy = 1; - mainPanel.add(new JLabel("Password:"), gbc); + if (existingEntity == null) { + gbc.gridy = 1; + mainPanel.add(new JLabel("Password:"), gbc); - gbc.gridy = 2; - mainPanel.add(new JLabel("Confirm Password:"), gbc); + gbc.gridy = 2; + mainPanel.add(new JLabel("Confirm Password:"), gbc); + } gbc.gridy = 3; mainPanel.add(new JLabel("eMail:"), gbc); @@ -103,16 +107,19 @@ public class NewUserDialog extends ButtonDialog { gbc.gridx = 1; gbc.fill = GridBagConstraints.HORIZONTAL; + gbc.insets = new Insets(2, 2, 2, 2); gbc.weightx = 1; gbc.gridy = 0; mainPanel.add(getUserNameField(), gbc); - gbc.gridy = 1; - mainPanel.add(getPasswordField(), gbc); + if (existingEntity == null) { + gbc.gridy = 1; + mainPanel.add(getPasswordField(), gbc); - gbc.gridy = 2; - mainPanel.add(getConfirmPasswordField(), gbc); + gbc.gridy = 2; + mainPanel.add(getConfirmPasswordField(), gbc); + } gbc.gridy = 3; mainPanel.add(getEmailField(), gbc); @@ -148,7 +155,7 @@ public class NewUserDialog extends ButtonDialog { if (userNameField == null) { userNameField = new JTextField(); if (existingEntity != null) { - userNameField.setText(existingEntity.getUserName()); + userNameField.setText(existingEntity.getUsername()); userNameField.setEditable(false); } userNameField.getDocument().addDocumentListener( @@ -282,6 +289,9 @@ public class NewUserDialog extends ButtonDialog { bioArea = new JTextArea(); if (existingEntity != null) bioArea.setText(existingEntity.getBio()); + bioArea.setFont(getUserNameField().getFont()); + bioArea.setBorder(getUserNameField().getBorder()); + bioArea.setPreferredSize(new Dimension(192, 69)); bioArea.getDocument().addDocumentListener(new DocumentListener() { @Override diff --git a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/test/org/diylc/TableTest.java b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/test/org/diylc/TableTest.java index 825b343e..f5d5c55b 100644 --- a/ diy-layout-creator --username bancika@gmail.com/diylc-swing/test/org/diylc/TableTest.java +++ b/ diy-layout-creator --username bancika@gmail.com/diylc-swing/test/org/diylc/TableTest.java @@ -8,7 +8,7 @@ import javax.swing.JFrame; import javax.swing.JScrollPane; import org.apache.log4j.BasicConfigurator; -import org.diylc.swing.plugins.cloud.model.ProjectEntity; +import org.diylc.plugins.cloud.model.ProjectEntity; import org.diylc.swingframework.objecttable.IActionProcessor; import org.diylc.swingframework.objecttable.ObjectListTable;