提交 3d1f814d 编写于 作者: R RiedNyko

Add/Edit event dialog #3761

Former-commit-id: acbc2d90
上级 7681c0ea
package org.jkiss.dbeaver.ext.mysql.edit;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.List;
import java.util.Map;
import org.jkiss.code.Nullable;
import org.jkiss.dbeaver.DBException;
import org.jkiss.dbeaver.ext.mysql.model.MySQLCatalog;
import org.jkiss.dbeaver.ext.mysql.model.MySQLEvent;
import org.jkiss.dbeaver.ext.mysql.model.MySQLProcedure;
import org.jkiss.dbeaver.model.DBConstants;
import org.jkiss.dbeaver.model.DBPDataSource;
import org.jkiss.dbeaver.model.DBUtils;
import org.jkiss.dbeaver.model.edit.DBECommandContext;
import org.jkiss.dbeaver.model.edit.DBEPersistAction;
import org.jkiss.dbeaver.model.impl.DBSObjectCache;
import org.jkiss.dbeaver.model.impl.edit.SQLDatabasePersistAction;
import org.jkiss.dbeaver.model.impl.sql.edit.SQLObjectEditor;
import org.jkiss.dbeaver.model.runtime.DBRProgressMonitor;
import org.jkiss.dbeaver.model.sql.SQLUtils;
import org.jkiss.dbeaver.model.struct.DBSEntityType;
import org.jkiss.dbeaver.ui.UITask;
import org.jkiss.dbeaver.ui.editors.object.struct.EntityEditPage;
import org.jkiss.utils.CommonUtils;
public class MySQLEventManager extends SQLObjectEditor<MySQLEvent, MySQLCatalog> {
public DBSObjectCache<MySQLCatalog, MySQLEvent> getObjectsCache(MySQLEvent object) {
return object.getCatalog().getEventCache();
}
@Override
public long getMakerOptions(DBPDataSource dataSource) {
return FEATURE_EDITOR_ON_CREATE;
}
@Nullable
@Override
protected MySQLEvent createDatabaseObject(DBRProgressMonitor monitor, DBECommandContext context, MySQLCatalog parent, Object copyFrom) {
return new UITask<MySQLEvent>() {
@Override
protected MySQLEvent runTask() {
EntityEditPage editPage = new EntityEditPage(parent.getDataSource(), DBSEntityType.EVENT);
if (!editPage.edit()) {
return null;
}
MySQLEvent newEvent = new MySQLEvent(parent, editPage.getEntityName());
newEvent.setObjectDefinitionText("SELECT 1");
return newEvent;
}
}.execute();
}
@Override
protected void addObjectCreateActions(DBRProgressMonitor monitor, List<DBEPersistAction> actions, SQLObjectEditor<MySQLEvent, MySQLCatalog>.ObjectCreateCommand command, Map<String, Object> options) {
final MySQLEvent event = command.getObject();
final StringBuilder script = new StringBuilder();
try {
script.append(event.getObjectDefinitionText(monitor, options));
} catch (DBException e) {
log.error(e);
}
actions.add(new SQLDatabasePersistAction("Create event", script.toString())); // $NON-NLS-2$
}
@Override
protected void addObjectModifyActions(DBRProgressMonitor monitor, List<DBEPersistAction> actionList, ObjectChangeCommand command, Map<String, Object> options) {
}
@Override
protected void addObjectDeleteActions(List<DBEPersistAction> actions, SQLObjectEditor<MySQLEvent, MySQLCatalog>.ObjectDeleteCommand command, Map<String, Object> options) {
actions.add(new SQLDatabasePersistAction("Drop event", "DROP EVENT " + DBUtils.getQuotedIdentifier(command.getObject())) //$NON-NLS-1$
);
}
}
......@@ -78,7 +78,7 @@ public class MySQLEvent implements MySQLSourceObject, DBPSaveableObject {
this.loadInfo(dbResult);
}
public MySQLEvent(MySQLCatalog catalog, boolean persisted, String name) {
public MySQLEvent(MySQLCatalog catalog, String name) {
this.catalog = catalog;
this.name = name;
......@@ -249,7 +249,7 @@ public class MySQLEvent implements MySQLSourceObject, DBPSaveableObject {
DateFormat dateFormat = new SimpleDateFormat(DBConstants.DEFAULT_TIMESTAMP_FORMAT);
StringBuilder sql = new StringBuilder();
sql.append("CREATE EVENT ").append(DBUtils.getQuotedIdentifier(this)).append("\n")
.append("ON SCHEDULE EVERY ").append(intervalValue).append(" ").append(intervalField).append("\n");
.append("ON SCHEDULE EVERY ").append(intervalValue = "1").append(" ").append(intervalField = "DAY").append("\n");
if (starts != null) {
sql.append("STARTS '").append(dateFormat.format(starts)).append("'\n");
}
......@@ -272,8 +272,12 @@ public class MySQLEvent implements MySQLSourceObject, DBPSaveableObject {
}
@Override
public void setObjectDefinitionText(String sourceText) throws DBException {
public void setObjectDefinitionText(String sourceText) {
eventDefinition = sourceText;
}
public MySQLCatalog getCatalog() {
return catalog;
}
}
......@@ -35,6 +35,7 @@ public class DBSEntityType
public static final DBSEntityType VIRTUAL_ASSOCIATION = new DBSEntityType("virtual_association", "Virtual Association", DBIcon.TREE_ASSOCIATION, false); //$NON-NLS-1$
public static final DBSEntityType SEQUENCE = new DBSEntityType("sequence", "Sequence", DBIcon.TREE_SEQUENCE, true);
public static final DBSEntityType PACKAGE = new DBSEntityType("package", "Package", DBIcon.TREE_PACKAGE, true);
public static final DBSEntityType EVENT = new DBSEntityType("event", "Event", DBIcon.TREE_EVENT, true);
private final String id;
private final String name;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册