/**
* Copyright (C) 2010 EdgyTech LLC.
*
* Licensed 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 com.edgytech.umongo;
import com.edgytech.swingfast.ConfirmDialog;
import com.edgytech.swingfast.XmlUnit;
import com.mongodb.DBRefBase;
import java.util.Date;
import java.util.UUID;
import java.util.regex.Pattern;
import org.bson.types.*;
/**
*
* @author antoine
*/
public class GlobalStore extends XmlUnit<XmlUnit> {
enum Item {
mongoPanel,
dbPanel,
collectionPanel,
indexPanel,
serverPanel,
routerPanel,
replSetPanel,
optionDialog,
errorDialog,
exportDialog,
importDialog,
autoUpdateDialog,
docBuilderDialog,
lockingOperationDialog,
dataLossDialog,
documentMenu,
documentFieldMenu,
jsonTextDialog,
replicaDialog,
passwordPromptDialog
}
public GlobalStore() {
setEnumBinding(Item.values(), null);
}
public MongoPanel getMongoPanel() {
return (MongoPanel) getBoundUnit(Item.mongoPanel);
}
public DbPanel getDbPanel() {
return (DbPanel) getBoundUnit(Item.dbPanel);
}
public CollectionPanel getCollectionPanel() {
return (CollectionPanel) getBoundUnit(Item.collectionPanel);
}
public IndexPanel getIndexPanel() {
return (IndexPanel) getBoundUnit(Item.indexPanel);
}
public ServerPanel getServerPanel() {
return (ServerPanel) getBoundUnit(Item.serverPanel);
}
public RouterPanel getRouterPanel() {
return (RouterPanel) getBoundUnit(Item.routerPanel);
}
public ReplSetPanel getReplSetPanel() {
return (ReplSetPanel) getBoundUnit(Item.replSetPanel);
}
OptionDialog getOptionDialog() {
return (OptionDialog) getBoundUnit(Item.optionDialog);
}
ErrorDialog getErrorDialog() {
return (ErrorDialog) getBoundUnit(Item.errorDialog);
}
ExportDialog getExportDialog() {
return (ExportDialog) getBoundUnit(Item.exportDialog);
}
ImportDialog getImportDialog() {
return (ImportDialog) getBoundUnit(Item.importDialog);
}
AutoUpdateDialog getAutoUpdateDialog() {
return (AutoUpdateDialog) getBoundUnit(Item.autoUpdateDialog);
}
DocBuilderDialog getDocBuilderDialog() {
return (DocBuilderDialog) getBoundUnit(Item.docBuilderDialog);
}
ConfirmDialog getLockingOperationDialog() {
return (ConfirmDialog) getBoundUnit(Item.lockingOperationDialog);
}
ConfirmDialog getDataLossOperationDialog() {
return (ConfirmDialog) getBoundUnit(Item.dataLossDialog);
}
JSONTextDialog getJSONTextDialog() {
return (JSONTextDialog) getBoundUnit(Item.jsonTextDialog);
}
ReplicaDialog getReplicaDialog() {
return (ReplicaDialog) getBoundUnit(Item.replicaDialog);
}
boolean confirmLockingOperation() {
if (!getLockingOperationDialog().show())
return false;
return true;
}
boolean confirmDataLossOperation() {
if (!getDataLossOperationDialog().show())
return false;
return true;
}
public Object editValue(String key, Object value) {
Class ceditor = null;
if (value == null) {
ceditor = null;
} else if (value instanceof String) {
ceditor = EditStringDialog.class;
} else if (value instanceof Binary) {
ceditor = EditBinaryDialog.class;
} else if (value instanceof ObjectId || value instanceof DBRefBase) {
ceditor = EditObjectIdDialog.class;
} else if (value instanceof Boolean) {
ceditor = EditBooleanDialog.class;
} else if (value instanceof Code || value instanceof CodeWScope) {
ceditor = EditCodeDialog.class;
} else if (value instanceof Date) {
ceditor = EditDateDialog.class;
} else if (value instanceof Double || value instanceof Float) {
ceditor = EditDoubleDialog.class;
} else if (value instanceof Long || value instanceof Integer) {
ceditor = EditLongDialog.class;
} else if (value instanceof Pattern) {
ceditor = EditPatternDialog.class;
} else if (value instanceof BSONTimestamp) {
ceditor = EditTimestampDialog.class;
} else if (value instanceof UUID) {
ceditor = EditUuidDialog.class;
}
if (ceditor == null)
return null;
EditFieldDialog editor = (EditFieldDialog) getFirstChildOfClass(ceditor, null);
editor.setKey(key);
editor.setValue(value);
if (!editor.show()) {
return null;
}
return editor.getValue();
}
String promptPassword(String resource) {
PasswordPromptDialog dia = (PasswordPromptDialog) getBoundUnit(Item.passwordPromptDialog);
dia.xmlLoadCheckpoint();
dia.setResource(resource);
if (!dia.show())
return null;
return dia.getPassword();
}
}