Package edu.isi.karma.controller.command.worksheet

Source Code of edu.isi.karma.controller.command.worksheet.OrganizeColumnsCommand

package edu.isi.karma.controller.command.worksheet;

import java.util.ArrayList;

import org.json.JSONArray;

import edu.isi.karma.controller.command.CommandException;
import edu.isi.karma.controller.command.CommandType;
import edu.isi.karma.controller.command.WorksheetCommand;
import edu.isi.karma.controller.command.selection.SuperSelectionManager;
import edu.isi.karma.controller.update.UpdateContainer;
import edu.isi.karma.controller.update.WorksheetUpdateFactory;
import edu.isi.karma.rep.Workspace;
import edu.isi.karma.view.VHNode;
import edu.isi.karma.view.VWorksheet;
import edu.isi.karma.view.VWorkspace;
import edu.isi.karma.view.VWorkspaceRegistry;


public class OrganizeColumnsCommand extends WorksheetCommand {
  private String workspaceId;
  private ArrayList<VHNode> prevOrderedColumns;
  private JSONArray orderedColumns;

  protected OrganizeColumnsCommand(String id, String workspaceId, String worksheetId, org.json.JSONArray orderedColumns) {
    super(id, worksheetId);
    this.workspaceId = workspaceId;
    this.orderedColumns = orderedColumns;

    addTag(CommandTag.Transformation);
  }

  @Override
  public String getCommandName() {
    return OrganizeColumnsCommand.class.getSimpleName();
  }

  @Override
  public String getTitle() {
    return "Organize Columns";
  }

  @Override
  public String getDescription() {
    return null;
  }

  @Override
  public CommandType getCommandType() {
    return CommandType.undoable;
  }

  @Override
  public UpdateContainer doIt(Workspace workspace) throws CommandException {
    orderColumns(orderedColumns);

    UpdateContainer c =  new UpdateContainer();
    c.append(WorksheetUpdateFactory.createWorksheetHierarchicalUpdates(worksheetId, SuperSelectionManager.DEFAULT_SELECTION));
    c.append(computeAlignmentAndSemanticTypesAndCreateUpdates(workspace));

    return c;
  }

  @Override
  public UpdateContainer undoIt(Workspace workspace) {
    if(prevOrderedColumns != null) {
      orderColumns(prevOrderedColumns);
    }
    UpdateContainer c =  new UpdateContainer();
    c.append(WorksheetUpdateFactory.createWorksheetHierarchicalUpdates(worksheetId, SuperSelectionManager.DEFAULT_SELECTION));
    c.append(computeAlignmentAndSemanticTypesAndCreateUpdates(workspace));
    return c;
  }

  private void orderColumns(JSONArray columns) {
    VWorkspace vWorkspace = VWorkspaceRegistry.getInstance().getVWorkspace(workspaceId);
    if (vWorkspace != null) {
      VWorksheet viewWorksheet = vWorkspace.getViewFactory().getVWorksheetByWorksheetId(worksheetId);
      prevOrderedColumns = viewWorksheet.getHeaderViewNodes();

      viewWorksheet.organizeColumns(columns);
    }
  }

  private void orderColumns(ArrayList<VHNode> columns) {
    VWorkspace vWorkspace = VWorkspaceRegistry.getInstance().getVWorkspace(workspaceId);
    if (vWorkspace != null) {
      VWorksheet viewWorksheet = vWorkspace.getViewFactory().getVWorksheetByWorksheetId(worksheetId);
      prevOrderedColumns = viewWorksheet.getHeaderViewNodes();

      viewWorksheet.organizeColumns(columns);
    }
  }
}
TOP

Related Classes of edu.isi.karma.controller.command.worksheet.OrganizeColumnsCommand

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.