Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion documents/create_tables.sql
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ CREATE TABLE user_role (
);

CREATE TABLE dbuser (
id integer PRIMARY KEY,
id serial PRIMARY KEY,
username text,
password text,
is_active boolean NOT NULL,
Expand Down
4 changes: 4 additions & 0 deletions src/jp/go/nibiohn/bioinfo/client/BaseWidget.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,17 @@
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;

import jp.go.nibiohn.bioinfo.client.management.UserManagementAsync;
import jp.go.nibiohn.bioinfo.client.management.UserManagement;

public abstract class BaseWidget extends Composite {
protected static final String SERVER_ERROR = "An error occurred while attempting to contact the server. "
+ "Please check your network connection and try again.";

protected static Logger rootLogger = Logger.getLogger("");

protected final GutFloraServiceAsync service = GWT.create(GutFloraService.class);
protected final UserManagementAsync management = GWT.create(UserManagement.class);

protected String name;
protected String link;
Expand Down
4 changes: 3 additions & 1 deletion src/jp/go/nibiohn/bioinfo/client/GutFloraService.java
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,9 @@ SearchResultData searchForSimilarReads(Set<SampleEntry> selectedSamples, String

String getCurrentUser();

boolean loginUser(String username, String password);
String createUser(String username, String password, String passwordConfirm);

String loginUser(String username, String password);

void logoutCurrentUser();

Expand Down
10 changes: 6 additions & 4 deletions src/jp/go/nibiohn/bioinfo/client/GutFloraServiceAsync.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,14 @@ void getReadsClusteredBarChart(Set<SampleEntry> selectedSamples, String rank, in
void getReadsClusteredBarChart(Set<SampleEntry> selectedSamples, String selectedRank, String parentRank,
String parentTaxonId, int distanceType, int linkageType, int numOfColumns, Map<Integer, DendrogramCache> cacheMap,
AsyncCallback<VisualizationtResult> callback);
void getProfilesAnalysisData(Set<SampleEntry> selectedSamples, String categoryId, String groupId, String lang,

void getProfilesAnalysisData(Set<SampleEntry> selectedSamples, String categoryId, String groupId, String lang,
AsyncCallback<GutFloraAnalysisData> callback);

void getReadsAnalysisData(Set<SampleEntry> selectedSamples, String rank, List<String> selectedcolumns,
AsyncCallback<GutFloraAnalysisData> callback);

void getProfilesAnalysisData(Set<SampleEntry> selectedSamples, List<String> selectedcolumns, String lang,
void getProfilesAnalysisData(Set<SampleEntry> selectedSamples, List<String> selectedcolumns, String lang,
AsyncCallback<GutFloraAnalysisData> callback);

void getAllTaxonEntries(Set<SampleEntry> selectedSamples, String rank, AsyncCallback<List<TaxonEntry>> callback);
Expand Down Expand Up @@ -109,7 +109,9 @@ void getAllReadsPctList(Set<SampleEntry> selectedSamples, String rank, List<Stri

void getCurrentUser(AsyncCallback<String> callback);

void loginUser(String username, String password, AsyncCallback<Boolean> callback);
void createUser(String username, String password, String passwordConfirm, AsyncCallback<String> callback);

void loginUser(String username, String password, AsyncCallback<String> callback);

void logoutCurrentUser(AsyncCallback<Void> callback);

Expand Down
203 changes: 8 additions & 195 deletions src/jp/go/nibiohn/bioinfo/client/Manta.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,14 @@
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.HTMLPanel;

import jp.go.nibiohn.bioinfo.shared.GutFloraConfig;
import jp.go.nibiohn.bioinfo.shared.GutFloraConstant;
import jp.go.nibiohn.bioinfo.shared.SampleEntry;
import jp.go.nibiohn.bioinfo.shared.SearchResultData;

import jp.go.nibiohn.bioinfo.client.management.UserManagementWidget;
/**
*
* Entry point classes define <code>onModuleLoad()</code>.
Expand All @@ -43,7 +45,7 @@ public class Manta extends BasePage {

private final GutFloraServiceAsync service = GWT.create(GutFloraService.class);

private List<BaseWidget> widgetTrails = new ArrayList<BaseWidget>();
private List<BaseWidget> widgetTrails = new ArrayList<BaseWidget>();

private SampleListWidget sampleListWidget;

Expand All @@ -52,7 +54,8 @@ public class Manta extends BasePage {
private SampleAnalysisWidget subsetAnalysisWidget;

private ReadVisualizeWidget readVisualizeWidget;


private UserManagementWidget userManagementWidget;
/**
* This is the entry point method.
*/
Expand All @@ -74,8 +77,9 @@ public void onModuleLoad() {
footer.add(new HTML("<p><hr style=\"margin-top: 48px;\"/></p>"));
footer.add(new HTML("<p style=\"text-align: center;\" class=\"fixlink\">" + GutFloraConfig.FOOTER + "</p>"));
infoPanel.add(footer);

getUserInfo();

userManagementWidget = new UserManagementWidget("", "");
userManagementWidget.getUserInfo();
}

@Override
Expand Down Expand Up @@ -112,7 +116,6 @@ public void onValueChange(ValueChangeEvent<String> event) {
@Override
public void onSuccess(List<SampleEntry> result) {
widgetTrails.clear();

sampleListWidget = new SampleListWidget(result, currentLang);
widgetTrails.add(sampleListWidget);

Expand Down Expand Up @@ -456,194 +459,4 @@ private void setNaviBar() {
naviPanel.add(naviBar);

}

private void getUserInfo() {
service.getCurrentUser(new AsyncCallback<String>() {

@Override
public void onSuccess(String result) {
RootPanel userInfo = RootPanel.get("userInfo");
userInfo.clear(true);
// TODO should not hard coded here
MenuBar menuBar = new MenuBar();
MenuBar userMenu = new MenuBar(true);
if (result != null) {
menuBar.addItem(result, userMenu);
MenuItem logoutMenu = new MenuItem("Logout", new Command() {

@Override
public void execute() {
DialogBox dialogBox = createLogoutDialogBox();
dialogBox.setGlassEnabled(true);
dialogBox.setAnimationEnabled(true);
dialogBox.setAutoHideEnabled(false);
dialogBox.center();
}
});
logoutMenu.addStyleName("userMenu");
userMenu.addItem(logoutMenu);
} else {
menuBar.addItem(GutFloraConstant.USER_NAME_GUEST, userMenu);
MenuItem loginMenu = new MenuItem("Login", new Command() {

@Override
public void execute() {
DialogBox dialogBox = createLoginDialogBox();
dialogBox.setGlassEnabled(true);
dialogBox.setAnimationEnabled(true);
dialogBox.setAutoHideEnabled(false);
dialogBox.center();
userIdTb.setFocus(true);
}
});
loginMenu.addStyleName("userMenu");
userMenu.addItem(loginMenu);
}
userInfo.add(menuBar);

}

@Override
public void onFailure(Throwable caught) {
warnMessage(SERVER_ERROR);
}
});
}

private TextBox userIdTb = new TextBox();
private DialogBox createLoginDialogBox() {
// Create a dialog box and set the caption text
final DialogBox dialogBox = new DialogBox(true);
dialogBox.setText("Login");
VerticalPanel vp = new VerticalPanel();
vp.setSpacing(6);
vp.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);

final Label infoLabel = new Label("Input your ID & password:");
infoLabel.setStyleName("loginInfo");
vp.add(infoLabel);

userIdTb.setSize("150px", "18px");
final TextBox passwordTb = new PasswordTextBox();
passwordTb.setSize("150px", "18px");

Button okBtn = new Button("OK", new ClickHandler() {

@Override
public void onClick(ClickEvent event) {
service.loginUser(userIdTb.getText(), passwordTb.getText(), new AsyncCallback<Boolean>() {

@Override
public void onSuccess(Boolean result) {
if (result.booleanValue()) {
getUserInfo();
dialogBox.hide();
History.newItem(currentLang + GutFloraConstant.NAVI_LINK_SAMPLE);
History.fireCurrentHistoryState();
} else {
infoLabel.setText("ERROR! Incorrect ID or password.");
infoLabel.setStyleName("loginError");
}
}

@Override
public void onFailure(Throwable caught) {
infoLabel.setText(SERVER_ERROR);
infoLabel.setStyleName("loginError");
}
});
}
});
Button cancelBtn = new Button("Cancel", new ClickHandler() {

@Override
public void onClick(ClickEvent event) {
dialogBox.hide();
}
});
okBtn.setWidth("80px");
cancelBtn.setWidth("80px");

Grid grid = new Grid(2, 2);
Label idLabel = new Label("User ID:");
idLabel.setWidth("80px");
idLabel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
grid.setWidget(0, 0, idLabel);
grid.setWidget(0, 1, userIdTb);
Label pwLabel = new Label("Password:");
pwLabel.setWidth("80px");
pwLabel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_RIGHT);
grid.setWidget(1, 0, pwLabel);
grid.setWidget(1, 1, passwordTb);

HorizontalPanel hp = new HorizontalPanel();
hp.setSpacing(6);
hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
hp.add(okBtn);
hp.add(cancelBtn);

vp.add(grid);
vp.add(hp);

dialogBox.add(vp);
// Return the dialog box
return dialogBox;
}

private DialogBox createLogoutDialogBox() {
// Create a dialog box and set the caption text
final DialogBox dialogBox = new DialogBox(true);
dialogBox.setText("Logout");
VerticalPanel vp = new VerticalPanel();
vp.setSpacing(16);
vp.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);

final Label infoLabel = new Label("Logout current user?");
infoLabel.setStyleName("loginInfo");
vp.add(infoLabel);

Button okBtn = new Button("Yes", new ClickHandler() {

@Override
public void onClick(ClickEvent event) {
service.logoutCurrentUser(new AsyncCallback<Void>() {

@Override
public void onSuccess(Void result) {
getUserInfo();
dialogBox.hide();
History.newItem(currentLang + GutFloraConstant.NAVI_LINK_SAMPLE);
History.fireCurrentHistoryState();
}

@Override
public void onFailure(Throwable caught) {
infoLabel.setText("System ERROR!");
infoLabel.setStyleName("loginError");
}
});
}
});
Button cancelBtn = new Button("No", new ClickHandler() {

@Override
public void onClick(ClickEvent event) {
dialogBox.hide();
}
});
okBtn.setWidth("80px");
cancelBtn.setWidth("80px");

HorizontalPanel hp = new HorizontalPanel();
hp.setSpacing(6);
hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
hp.add(okBtn);
hp.add(cancelBtn);

vp.add(hp);

dialogBox.add(vp);
// Return the dialog box
return dialogBox;
}
}
16 changes: 16 additions & 0 deletions src/jp/go/nibiohn/bioinfo/client/management/UserManagement.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package jp.go.nibiohn.bioinfo.client.management;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;


@RemoteServiceRelativePath("management")
public interface UserManagement extends RemoteService {

String getLoginUserRole();

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package jp.go.nibiohn.bioinfo.client.management;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
* The async counterpart of <code>GutFloraService</code>.
*/
public interface UserManagementAsync {

void getLoginUserRole(AsyncCallback<String> callback);

}
Loading