Skip to content

Commit

Permalink
more initial work on plot export
Browse files Browse the repository at this point in the history
  • Loading branch information
jjallaire committed May 2, 2011
1 parent 093930a commit 5cd9e29
Show file tree
Hide file tree
Showing 8 changed files with 186 additions and 28 deletions.
@@ -0,0 +1 @@

88 changes: 88 additions & 0 deletions src/gwt/src/org/rstudio/core/client/widget/ResizeGripper.java
@@ -0,0 +1,88 @@
package org.rstudio.core.client.widget;


import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.resources.client.ImageResource;
import com.google.gwt.user.client.DOM;
import com.google.gwt.user.client.Event;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.Image;




public class ResizeGripper extends Composite
{
public ResizeGripper()
{
gripperImageResource_ = RESOURCES.resizeGripper();
Image image = new Image(gripperImageResource_);
initWidget(image);


DOM.sinkEvents(getElement(),
Event.ONMOUSEOVER |
Event.ONMOUSEDOWN |
Event.ONMOUSEMOVE |
Event.ONMOUSEUP);
}

public int getImageWidth()
{
return gripperImageResource_.getWidth();
}

public int getImageHeight()
{
return gripperImageResource_.getHeight();
}


@Override
public void onBrowserEvent(Event event)
{
final int eventType = DOM.eventGetType(event);

if (Event.ONMOUSEOVER == eventType)
{

}
else if (Event.ONMOUSEDOWN == eventType)
{

}
else if (Event.ONMOUSEMOVE == eventType)
{

}
else if (Event.ONMOUSEUP == eventType)
{

}
}


interface Styles extends CssResource
{

}

interface Resources extends ClientBundle
{
@Source("ResizeGripper.css")
Styles styles();

ImageResource resizeGripper();
}

static Resources RESOURCES = (Resources)GWT.create(Resources.class);
public static void ensureStylesInjected()
{
RESOURCES.styles().ensureInjected();
}

private final ImageResource gripperImageResource_;

}
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 5 additions & 3 deletions src/gwt/src/org/rstudio/studio/client/RStudio.java
Expand Up @@ -29,6 +29,7 @@
import org.rstudio.core.client.resources.CoreResources;
import org.rstudio.core.client.theme.res.ThemeResources;
import org.rstudio.core.client.widget.FontSizer;
import org.rstudio.core.client.widget.ResizeGripper;
import org.rstudio.core.client.widget.SlideLabel;
import org.rstudio.core.client.widget.ThemedButton;
import org.rstudio.core.client.widget.ThemedPopupPanel;
Expand All @@ -49,7 +50,7 @@
import org.rstudio.studio.client.workbench.views.packages.ui.PackagesCellTableResources;
import org.rstudio.studio.client.workbench.views.plots.ui.ExportDialog;
import org.rstudio.studio.client.workbench.views.plots.ui.PrintDialog;
import org.rstudio.studio.client.workbench.views.plots.ui.export.ExportPlotDialog;
import org.rstudio.studio.client.workbench.views.plots.ui.export.ExportPlotDialogResources;
import org.rstudio.studio.client.workbench.views.plots.ui.manipulator.ManipulatorResources;
import org.rstudio.studio.client.workbench.views.source.editors.text.findreplace.FindReplaceBar;
import org.rstudio.studio.client.workbench.views.source.editors.text.ui.PublishPdfDialog;
Expand Down Expand Up @@ -122,7 +123,8 @@ private void load(final Command dismissProgressAnimation)
ManipulatorResources.INSTANCE.manipulatorStyles().ensureInjected();
PackagesCellTableResources.INSTANCE.cellTableStyle().ensureInjected();
FilesListCellTableResources.INSTANCE.cellTableStyle().ensureInjected();

ExportPlotDialogResources.INSTANCE.styles().ensureInjected();

SupportPopupMenu.ensureStylesInjected();
SlideLabel.ensureStylesInjected();
ThemedButton.ensureStylesInjected();
Expand All @@ -131,7 +133,6 @@ private void load(final Command dismissProgressAnimation)
InstallPackageDialog.ensureStylesInjected();
PublishPdfDialog.ensureStylesInjected();
ExportDialog.ensureStylesInjected();
ExportPlotDialog.ensureStylesInjected();
ApplicationEndedPopupPanel.ensureStylesInjected();
ApplicationSerializationProgress.ensureStylesInjected();
HistoryPane.ensureStylesInjected();
Expand All @@ -144,6 +145,7 @@ private void load(final Command dismissProgressAnimation)
LinkColumn.ensureStylesInjected();
CheckForUpdatesDialog.ensureStylesInjected();
ChooseCRANMirrorDialog.ensureStylesInjected();
ResizeGripper.ensureStylesInjected();

StyleInjector.inject(
"button::-moz-focus-inner {border:0}");
Expand Down
@@ -1,6 +1,9 @@

.mainWidget {
width: 360px;
}


.imagePreview {
border: 1px solid #BBB;
outline: 0;
background-color: white;
}
@@ -1,17 +1,13 @@
package org.rstudio.studio.client.workbench.views.plots.ui.export;


import org.rstudio.core.client.widget.ModalDialogBase;
import org.rstudio.core.client.widget.OperationWithInput;
import org.rstudio.core.client.widget.ThemedButton;
import org.rstudio.studio.client.workbench.views.plots.model.ExportPlotOptions;
import org.rstudio.studio.client.workbench.views.plots.model.PlotsServerOperations;

import com.google.gwt.core.client.GWT;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.VerticalPanel;
import com.google.gwt.user.client.ui.Widget;
Expand Down Expand Up @@ -42,32 +38,26 @@ public void onClick(ClickEvent event) {
protected Widget createMainWidget()
{
VerticalPanel mainPanel = new VerticalPanel();
mainPanel.setStylePrimaryName(RESOURCES.styles().mainWidget());
mainPanel.setStylePrimaryName(
ExportPlotDialogResources.INSTANCE.styles().mainWidget());


imagePreview_ = new ResizableImagePreview();
imagePreview_.setWidth("360px");
imagePreview_.setHeight("240px");

mainPanel.add(imagePreview_);


return mainPanel;

}


public static interface Styles extends CssResource
{
String mainWidget();
}

public static interface Resources extends ClientBundle
{
@Source("ExportPlotDialog.css")
Styles styles();
}

public static Resources RESOURCES = (Resources)GWT.create(Resources.class) ;
public static void ensureStylesInjected()
{
RESOURCES.styles().ensureInjected();
}


@SuppressWarnings("unused")
private final PlotsServerOperations server_;
private ExportPlotOptions options_;

private ResizableImagePreview imagePreview_;

}
@@ -0,0 +1,23 @@
package org.rstudio.studio.client.workbench.views.plots.ui.export;


import com.google.gwt.core.client.GWT;
import com.google.gwt.resources.client.ClientBundle;
import com.google.gwt.resources.client.CssResource;

public interface ExportPlotDialogResources extends ClientBundle
{
public static interface Styles extends CssResource
{
String mainWidget();
String imagePreview();
}


@Source("ExportPlotDialog.css")
Styles styles();

public static ExportPlotDialogResources INSTANCE =
(ExportPlotDialogResources)GWT.create(ExportPlotDialogResources.class) ;

}
@@ -0,0 +1,51 @@
package org.rstudio.studio.client.workbench.views.plots.ui.export;

import org.rstudio.core.client.widget.ImageFrame;
import org.rstudio.core.client.widget.ResizeGripper;

import com.google.gwt.dom.client.Style.Overflow;
import com.google.gwt.dom.client.Style.Unit;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.LayoutPanel;

public class ResizableImagePreview extends Composite
{
public ResizableImagePreview()
{
// alias resources
ExportPlotDialogResources resources = ExportPlotDialogResources.INSTANCE;

// main widget
LayoutPanel layoutPanel = new LayoutPanel();

// image frame
imageFrame_ = new ImageFrame();
imageFrame_.setSize("100%", "100%");
imageFrame_.setUrl("about:blank");
imageFrame_.setStylePrimaryName(resources.styles().imagePreview());
layoutPanel.add(imageFrame_);
layoutPanel.setWidgetLeftRight(imageFrame_, 0, Unit.PX, 8, Unit.PX);
layoutPanel.setWidgetTopBottom(imageFrame_, 0, Unit.PX, 8, Unit.PX);
layoutPanel.getWidgetContainerElement(imageFrame_).getStyle().setOverflow(Overflow.VISIBLE);

// resize gripper
ResizeGripper gripper = new ResizeGripper();
layoutPanel.add(gripper);
layoutPanel.setWidgetRightWidth(gripper,
0, Unit.PX,
gripper.getImageWidth(), Unit.PX);
layoutPanel.setWidgetBottomHeight(gripper,
0, Unit.PX,
gripper.getImageHeight(), Unit.PX);



initWidget(layoutPanel);
}





private ImageFrame imageFrame_;
}

0 comments on commit 5cd9e29

Please sign in to comment.